gpt4 book ai didi

java - 以最后一个元素排序

转载 作者:太空狗 更新时间:2023-10-29 22:52:56 25 4
gpt4 key购买 nike

我有一个对象列表,我想按属性的字母顺序对其进行排序。但如果此属性与特定字符串匹配,我想添加一个异常(exception)规则。例如:

public class Car {
String name;
}
List<Car> cars = asList(
new Car("Unassigned"),
new Car("Nissan"),
new Car("Yamaha"),
new Car("Honda"));

List<Car> sortedCars = cars
.stream
.sorted(Comparator.comparing(Car::getName))
.collect(Collectors.toList());

如果 cars.name == "Unassigned" 那么这辆车应该保留在列表的末尾,结果将是:

[Car<Honda>, Car<Nissan>, Car<Yamaha>, Car<Unassigned>]

最佳答案

  List<Car> sortedCars = cars
.stream()
.sorted(Comparator.comparing(
Car::getName,
Comparator.comparing((String x) -> x.equals("Unassigned"))
.thenComparing(Comparator.naturalOrder())))
.collect(Collectors.toList());

这里发生了很多事情。首先,我使用 Comparator.comparing(Function, Comparator);然后 (String x) -> x.equals("Unassigned") 实际上比较一个 Boolean (即 Comparable);然后使用 (String x) 的事实 - 因为此类型见证用于正确推断类型......

关于java - 以最后一个元素排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55102884/

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