使用 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 对象数量。

Java Stream API 分组:如何根据 userId 对 LiveUserRecord 列表进行分类

原文地址: https://www.cveoy.top/t/topic/mMvJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录