gpt4 book ai didi

java - 如何在 Java 8 中创建条件排序

转载 作者:行者123 更新时间:2023-12-02 15:48:33 24 4
gpt4 key购买 nike

假设我有一个通过排序函数返回的点列表:

List<Point> points = new ArrayList<>(); 
points.add(new Point(3, 30));
points.add(new Point(1, 10));
points.add(new Point(2, 20));

points.stream()
.sorted((p1, p2)->p1.x.compareTo(p2.x))
.forEach(System.out::println);

如何根据 boolean 标志 (sortThePoints) 使排序(...) 成为条件,如下所示

points.stream()
if(sortThePoints){
.sorted((p1, p2)->p1.x.compareTo(p2.x))
}
.forEach(System.out::println);

最佳答案

Stream.sorted(Comparator)制作 stable sort如果流是有序的。换句话说,如果两个元素相等,那么它们将保持其初始顺序。

static final Comparator<Point> identityComparator = (p1, p2) -> 0;

Comparator<Point> normalComparator = (p1, p2)->p1.x.compareTo(p2.x);

(or Comparator<Point> normalComparator = Comparator.comparing(p -> p.x))

points.stream()
.sorted(sortThePoints ? normalComparator : identityComparator)
.forEach(System.out::println);

关于java - 如何在 Java 8 中创建条件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59454022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com