/**
* 根據活動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流一樣好用