3
我有對象列表。每個對象都有屬性「日期」,我需要將此列表轉換爲地圖,其中鍵爲「日期」,值爲對象列表。我能否將列表<V>轉換成地圖<K, List<V>>無foreach?
我可以通過使用標準的foreach來做到這一點,但是可以用Java 8和流做到這一點嗎?
我有對象列表。每個對象都有屬性「日期」,我需要將此列表轉換爲地圖,其中鍵爲「日期」,值爲對象列表。我能否將列表<V>轉換成地圖<K, List<V>>無foreach?
我可以通過使用標準的foreach來做到這一點,但是可以用Java 8和流做到這一點嗎?
這就是collect
與groupingBy
是:
Map<K, List<V>> groups = listOfVs.stream().collect(Collectors.groupingBy(V::getK));
您可以按日期使用Stream
API與Java 8組中的List
的項目,將它們放置在一個Map
像這樣:
Map<Date, List<YourObject>> collisions = yourObjectsList.stream().collect(Collectors.groupingBy(YourObject::getDate));