例:我们想知道一个List集合中,我们想根据属性’XX’,进行分组。那我们应该怎么做呢?要是通过for循环,代码需要写很多行,下面我们用一行代码解决。
下面是我初始化BaseData对象List6条数据,name全部都不一样,但是value有相同的。现在我们根据’value’,进行分组,并生成新的分组集合。
下面代码就是基于BaseData对象属性value进行分组,生成新的map集合
Map<Integer, List<BaseData>> baseMap =baseDataList.stream().collect(Collectors.groupingBy(BaseData::getValue));
执行完之后,我们看下对应的集合变化
我们可以看出,Map的key 就是分组的value。Map的Value 就是BaseData对象List