在日期列表中查找所有年份

时间:2017-01-24 15:46:38

标签: java android android-studio

所以,我有一个类似的日期列表:

var json SomeJsonStruct
if c.BindJSON(&json) == nil {
    //...
}

列表继续包含100个日期,我想检索列表中存在的所有年份。 (得到这样的结果)

List<String> dates = ["2012-05-16", "2012-05-18", "2012-06-19", "2013-01-18", "2013-01-10", "2013-08-05", "2010-07-10"...]

3 个答案:

答案 0 :(得分:3)

使用子字符串将每个项目的前4个字符分开。它将为您留下年份

   for (String s : dates) {
         String year = s.subString(0,5);
         years.add(year);

      }

或者您可以使用.split()方法

String year =  s.split("-")[0];

修改

进一步澄清后,问题是在数组列表中获得独特的年份。

这可以通过将arraylist传递给不接受重复值然后将集合传回数组的Set来完成

// add elements to al, including duplicates
Set<String> hs = new HashSet<>();
hs.addAll(years);
years.clear();
years.addAll(hs);

How do I remove repeated elements from ArrayList?

答案 1 :(得分:0)

您可以在添加到列表之前检查重复项(或者您可以使用Set而不是List)。

startDate         count(*)
07-01-2016        17
09-02-2016        14
11-05-2016        77

答案 2 :(得分:-1)

使用Set类。这可以防止多次插入相同的String