lambda表达式分组
时间: 2023-12-08 19:28:06 浏览: 91
使用lambda表达式对集合进行分组可以通过Stream的collect方法结合Collectors的groupingBy方法实现。具体步骤如下:
1. 首先,获取一个Stream对象,可以通过集合的stream()方法获得。
2. 调用collect方法,并传入Collectors的groupingBy方法作为参数,该方法接受一个Function对象,用于指定根据哪个属性进行分组。
3. 在groupingBy方法中,传入一个Lambda表达式或方法引用,用于指定根据哪个属性进行分组。Lambda表达式的参数为集合中的元素,返回值为分组的依据属性值。
4. collect方法的返回值为一个Map对象,其中键为分组的属性值,值为对应分组的元素列表。
下面是一个示例代码,演示如何使用lambda表达式对City对象集合按照城市名进行分组:
```java
Map<String, List<City>> map = cities.stream()
.collect(Collectors.groupingBy(City::getCity));
```
在上述代码中,cities为City对象的集合,getCity为City类的一个方法,返回城市名。通过调用stream()方法获取Stream对象,然后调用collect方法,并传入Collectors的groupingBy方法,以getCity作为分组的依据。最终得到的map对象中,键为城市名,值为对应城市名的City对象列表。
参考资料:
2、分组 Map<String, List<City>> map = cities.stream().collect(Collectors.groupingBy(City :: getCity));
主要介绍了lambda表达式解决java后台分组排序过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。
我们经常会对list集合去重,于是我自己花了点时间将如何用 lambda表达式对list集合去重做了封装和测试,方便以后快速使用。包括对对象集合中的某个属性去重等。如果有特殊的list去重要求,可以自行对下列方法进行修改。
阅读全文