2024年1月10日发(作者:)
在 Java 8 中,可以使用函数式编程的方式来实现集合的多条件排序。Java 8 引入了
`Comparator` 接口的新方法 `comparing` 和 `thenComparing`,可以方便地进行多条件排序。
下面是一个示例,假设有一个 `Person` 类,包含 `name`、`age` 和 `city` 属性,我们要按照先按年龄升序排序,年龄相同再按照城市名称升序排序:
```java
import ist;
import ator;
import ;
class Person {
private String name;
private int age;
private String city;
public Person(String name, int age, String city) {
= name;
= age;
= city;
}
// 省略 getter 和 setter 方法
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
", age=" + age +
", city='" + city + ''' +
'}';
}
}
public class Main {
public static void main(String[] args) {
List
(new Person("Alice", 25, "New York"));
(new Person("Bob", 30, "Seattle"));
(new Person("Charlie", 20, "San Francisco"));
(new Person("Alice", 22, "Los Angeles"));
Comparator
.thenComparing(Person::getCity);
(comparator);
for (Person person : people) {
n(person);
}
}
}
```
输出结果:
```
Person{name='Charlie', age=20, city='San Francisco'}
Person{name='Alice', age=22, city='Los Angeles'}
Person{name='Alice', age=25, city='New York'}
Person{name='Bob', age=30, city='Seattle'}
```
在这个示例中,我们使用 `ing` 方法先按年龄升序排序,然后使用
`thenComparing` 方法在年龄相同的情况下按城市名称升序排序。最后,使用 `sort` 方法对集合进行排序。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1704890317a1380801.html
评论列表(0条)