2024年2月8日发(作者:)
在 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` 方法对集合进行排序。
本文发布于:2024-02-08 06:35:31,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170734533166814.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |