当前位置: 首页 > 知识库问答 >
问题:

如何使用Java8 lambda对流进行反序排序?

边浩漫
2023-03-14

我正在使用java lambda对列表进行排序

我怎样才能反向排序呢?

Arrays.asList(files).stream()
    .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName()))
    .sorted(new Comparator<File>() {
        public int compare(File o1, File o2) {
            int answer;
            if (o1.lastModified() == o2.lastModified()) {
                answer = 0;
            } else if (o1.lastModified() > o2.lastModified()) {
                answer = 1;
            } else {
                answer = -1;
            }
            return -1 * answer;
        }
    })
    .skip(numOfNewestToLeave)
    .forEach(item -> item.delete());

共有1个答案

梁泰
2023-03-14

您可以改编您在如何在Java中按递减顺序排序arraylist 中链接的解决方案?用lambda包装:

.sorted((f1,f2)->long.compare(f2.lastModified(),f1.lastModified())

注意,f2是long.compare的第一个参数,而不是第二个参数,因此结果将颠倒过来。

 类似资料:
  • 我想像下面这样对流进行反向排序,但是编译时错误为。有人能纠正这个吗

  • 我有一个数据库表,我想对其进行筛选,然后按相反(降序)顺序进行排序。我如何在类似于以下内容的速度流中表达: 我希望我的SQL查询能够通过速度优化,因此我不能使用匿名lambda。

  • 我有这个列表,我想按保留顺序订购,但我没有在自动完成辅助中找到任何函数 我也尝试过: 但是我有编译错误:

  • 问题内容: 我的清单包含大小等的集合。我尝试这样做,但似乎不起作用。 我想要的最终结果是。 我可以尝试添加在所有的元素和那种出来再做出新的的。但是,有某种班轮吗? 更新: 这可行,但是可以简化吗? 问题答案: @Eugene的回答很甜蜜,因为番石榴很甜。但是,如果您碰巧在类路径中没有番石榴,这是另一种方式: 首先,我将所有集合映射到一个流中,然后对所有元素进行排序,最后,将整个排序后的流收集到集合

  • 这个问题涵盖了如何使用FlinkSQL对乱序流进行排序,但我更愿意使用DataStream API。一种解决方案是使用ProcessFunction来执行此操作,该ProcessFunction使用PriorityQueue来缓冲事件,直到水印指示它们不再乱序,但这在RocksDB状态后端中表现不佳(问题是每次访问PriorityQueue都需要整个PriorityQueue的ser/de)。无论

  • 我有一个这样的方法: 此方法需要以如下字符串形式返回3个最昂贵项目的产品ID:“item1,item2,item3”。我应该只能使用溪流,我被困在这里了。我应该能够按值对项目进行排序,然后获得产品ID,但我似乎无法使其正常工作。 编辑: 产品ID位于入口类中