在开发中会遇到这样的一个场景,按照某一个字段分组,生成一个以分组id为key,组信息是一个list的map,java8中提供了一个方法
List里面的对象元素,以某个属性来分组,例如,以id分组,将id相同的对象放到一起
Map<Integer, List<UserInfo>> groupBy = appleList.stream().collect(Collectors.groupingBy(UserInfo::getId));
结果:
{1=[UserInfo{id=1, name='张三'}, Apple{id=1, name='李四'}], 2=[UserInfo{id=2, name='王五'}
将list对象转化为map
Map<Integer, UserInfo> groupBy = appleList.stream().collect(Collectors.toMap(UserInfo::getId,userInfo->userInfo));