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

阅读: 评论:0

2024年2月8日发(作者:)

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

在 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` 方法对集合进行排序。

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

本文发布于:2024-02-08 06:35:31,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170734533166814.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:排序   集合   升序
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23