我有对象列表。每个对象都有属性“date”,我需要将此List转换为Map,其中key是“date”,value是对象List。
我可以通过使用标准foreach来实现这一点,但是可以使用Java 8和流来实现吗?
答案 0 :(得分:9)
collect
与groupingBy
的含义是:
Map<K, List<V>> groups = listOfVs.stream().collect(Collectors.groupingBy(V::getK));
答案 1 :(得分:4)
您可以使用Stream
API与Java 8按日期对List
中的项目进行分组,并将它们放在Map
中,如下所示:
Map<Date, List<YourObject>> collisions = yourObjectsList.stream().collect(Collectors.groupingBy(YourObject::getDate));