按数据排序java迭代

时间:2017-12-19 18:03:16

标签: java iterator interactive-brokers

有以下代码,我不能改变过期。 :

for (Iterator<String> i = expirations.iterator(); i.hasNext();) {
String item = i.next();
System.out.println(+item);
}

打印出以下内容:

20180329
20180615
20180119
20180316
20180921
20180216
20171222
20180105

我需要按日期对它进行排序,并通过像var result [1]之类的东西来取第一个;

我尝试了这个,但它没有排序:

               for (Iterator<String> i = expirations.iterator(); i.hasNext();) {
    String item = i.next();

     List list = new ArrayList();
        list.add(item);

        // Sort list
        Collections.sort(list);
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
        System.out.println("sort LIST EXPIRATION: "+iterator.next());
        }
}

1 个答案:

答案 0 :(得分:0)

你可以这样做:

List<String> expirations = Arrays.asList(new String[] {"20180329", "20180615", "20180119",
    "20180316", "20180921", "20180216", "20171222", "20180105"});

Set<String> sortedSet = new TreeSet<>(expirations);

for (Iterator<String> i = sortedSet.iterator(); i.hasNext();) {
  String item = i.next();
  System.out.println(item);
}

我不知道你的expirations是什么,所以我只是把它简单化了。

输出:

20171222
20180105
20180119
20180216
20180316
20180329
20180615
20180921

请注意,Set不允许重复,因此如果您想保留重复内容,则必须使用其他方法。