我可以将List <v>转换为Map <k,list <v =“”>&gt;没有foreach?

时间:2017-04-18 11:48:37

标签: java

我有对象列表。每个对象都有属性“date”,我需要将此List转换为Map,其中key是“date”,value是对象List。

我可以通过使用标准foreach来实现这一点,但是可以使用Java 8和流来实现吗?

2 个答案:

答案 0 :(得分:9)

collectgroupingBy的含义是:

Map<K, List<V>> groups = listOfVs.stream().collect(Collectors.groupingBy(V::getK));

答案 1 :(得分:4)

您可以使用Stream API与Jav​​a 8按日期对List中的项目进行分组,并将它们放在Map中,如下所示:

Map<Date, List<YourObject>> collisions = yourObjectsList.stream().collect(Collectors.groupingBy(YourObject::getDate));