java8 函数式 实现集合 多条件排序

java8 函数式 实现集合 多条件排序


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 people = new ArrayList<>();

(new Person("Alice", 25, "New York"));

(new Person("Bob", 30, "Seattle"));

(new Person("Charlie", 20, "San Francisco"));

(new Person("Alice", 22, "Los Angeles"));

Comparator comparator = ing(Person::getAge)

.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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信