根据对象里的某一属性值排序,并将这一属性值为空的数据排在后面
时间: 2024-03-15 08:45:19 浏览: 55
对象排序算法
假设我们有一个包含Person对象的列表,每个Person对象都有一个age属性,现在我们要根据age属性对列表进行排序,并将age属性为空的数据排在后面,可以使用如下代码:
```java
List<Person> persons = new ArrayList<>();
persons.add(new Person("Tom", 20));
persons.add(new Person("Jerry", null));
persons.add(new Person("Alice", 25));
persons.add(new Person("Bob", null));
List<Person> sortedPersons = persons.stream()
.sorted(Comparator.nullsLast(Comparator.comparing(Person::getAge)))
.collect(Collectors.toList());
sortedPersons.forEach(System.out::println);
```
上述代码使用`.sorted()`方法对Person对象进行排序,使用`Comparator.comparing()`指定按照age属性进行排序,使用`Comparator.nullsLast()`将age属性为空的数据排在后面。
输出结果为:
```
Person{name='Tom', age=20}
Person{name='Alice', age=25}
Person{name='Jerry', age=null}
Person{name='Bob', age=null}
```
阅读全文