Collections工具类,可以使用collections工具类对代码中的list进行分组
/**
* 根据活动id进行分组
* key 活动id
* value 活动id对应的商品id
*/
Map<Long, Set<Long>> collect = activitySkuList .stream() .collect(Collectors .groupingBy(ActivitySku::getActivityId , Collectors.mapping(ActivitySku::getSkuId, Collectors.toSet()) ) ); Map<Long, List<Long>> collect1 = activitySkuList.stream().collect(Collectors.groupingBy(ActivitySku::getActivityId, Collectors.mapping(ActivitySku::getSkuId, Collectors.toList()))); Map<Long, List<SkuInfo>> collect2 = activitySkuList.stream().collect(Collectors.groupingBy(ActivitySku::getActivityId, Collectors.mapping(ActivitySku::getSkuInfo, Collectors.toList()))
当我们需要对代码list进行分组的时候,有时候使用for循环会显得很蠢,那么使用Colletions工具类就会很方便,根据所需要的分类值,进行映射分组集合,以上是案例
toMap 返回map集合 Map<Long, List<Long>>
toList 返回list集合
tips stream流一样好用