stream()流根据字段正叙排序 java
时间: 2023-11-08 15:48:03 浏览: 145
要根据字段正序排序的话,可以使用stream的sorted()方法和Comparator比较器来实现。首先,创建一个Comparator对象,使用该对象对要排序的字段进行比较。然后,将该Comparator对象作为参数传递给stream的sorted()方法。这样,stream就会按照指定的字段进行正序排序。
例如,假设我们有一个List<Person>对象列表,其中Person对象有nick_name、address和age字段。我们可以按照nick_name、address和age顺序进行排序,代码如下所示:
List<Person> personList = new ArrayList<>();
// 假设已经将数据添加到personList中
List<Person> sortedList = personList.stream()
.sorted(Comparator.comparing(Person::getNickName)
.thenComparing(Person::getAddress)
.thenComparing(Person::getAge))
.collect(Collectors.toList());
在上述代码中,我们使用sorted()方法和Comparator.comparing()方法进行排序。首先按照nick_name字段进行排序,然后按照address字段进行排序,最后按照age字段进行排序。sortedList列表将按照指定的顺序排序。
引用中提到了通过stream的sorted()方法和Comparator比较器对字段进行排序的原理和使用方法。
注意:上述示例代码是基于Java 8的stream特性实现的。如果使用的是Java 7或更早的版本,可以通过实现Comparator接口的compare()方法来实现字段排序。
阅读全文