在Java Stream中,可以通过使用sorted
方法来实现元素的自定义比较。sorted
方法可以接受一个Comparator参数,该参数用于实现元素的自定义比较逻辑。
例如,假设我们有一个包含Person对象的列表,每个Person对象有一个age属性,我们想按照age属性进行降序排序。我们可以通过以下方式实现:
List<Person> persons = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Carol", 20)
);
List<Person> sortedPersons = persons.stream()
.sorted(Comparator.comparingInt(Person::getAge).reversed())
.collect(Collectors.toList());
sortedPersons.forEach(person -> System.out.println(person.getName() + " - " + person.getAge()));
在上面的代码中,我们使用sorted
方法和Comparator.comparingInt
方法来指定按照Person对象的age属性进行排序,同时使用reversed
方法来指定降序排序。最后,我们通过collect
方法将排序后的结果收集到一个新的列表中。