按数据排序 java 迭代输出

sort java iteration output by data

有如下代码,我没法修改过期时间。 :

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());
        }
}

你可以这样做,例如:

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 不允许重复,因此如果您想保留重复项,则必须使用其他方法。