在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
方法將排序后的結果收集到一個新的列表中。