我試圖地圖列表合併成一個單一的一個:合併地圖列表到一個單一的地圖
List<Map<String, List<Long>>> dataSet;
Map<String, Set<Long>> uniqueSets = dataset.stream()
.flatMap(m -> m.entrySet().stream())
.collect(Collectors.groupingBy(
Map.Entry::getKey,
Collector.of(
HashSet<Long>::new,
...,
...
)
));
的想法是,uniqueSet
應持有唯一的ID內的列表(多頭)每個集合(由String標識)。但我不確定...
部件。
對於要求例子(JSON):
輸入:
[
{
"Collection1": [1, 2, 3, 3],
"Collection2": [2, 3]
},
{
"Collection1": [3, 4],
"Collection3": [1, 2]
}
]
輸出:
{
"Collection1": [1, 2, 3, 4],
"Collection2": [2, 3],
"Collection3": [1, 2]
}
如果這些應該是_unique,_你不想要一個集? –
如果兩張地圖具有相同的關鍵字並具有不同的值,該怎麼辦?在兩次分開的運行中,您可能會得到兩個不同的結果(意思是說它不一致)。 – alfasin
@alfasin我不確定你的意思。但是,如果兩個地圖具有相同的密鑰,則結果應該使用其列表的合併列表一次具有該密鑰。我的意思是這是整個想法。 – Mehran