Java Stream API 分组:如何根据 userId 对 LiveUserRecord 列表进行分类
使用 Java8 的 Stream API 可以方便地对集合进行分类操作。
按照 userId 分组
可以使用 Collectors.groupingBy() 方法,指定分类的条件,如下所示:
Map<Long, List<LiveUserRecord>> classifiedMap = liveUserRecordList.stream()
.collect(Collectors.groupingBy(LiveUserRecord::getUserId));
上述代码将根据 LiveUserRecord 对象的 userId 属性对集合进行分类,并将结果存储在一个 Map 对象中,其中键是 userId,值是对应的 LiveUserRecord 对象列表。
统计每个分类中的元素数量
如果想要按照 userId 分类并计算每个分类中的 LiveUserRecord 对象数量,可以使用 Collectors.counting() 方法,如下所示:
Map<Long, Long> countMap = liveUserRecordList.stream()
.collect(Collectors.groupingBy(LiveUserRecord::getUserId, Collectors.counting()));
上述代码将返回一个 Map 对象,其中键是 userId,值是对应分类中的 LiveUserRecord 对象数量。
原文地址: https://www.cveoy.top/t/topic/mMvJ 著作权归作者所有。请勿转载和采集!