Merge Map<String, List<String> Java 8 Stream

Ich würde gerne Zusammenführen von zwei Anzeigen mit JAVA 8 Stream:

Map<String, List<String>> mapGlobal = new HashMap<String, List<String>>();
Map<String, List<String>> mapAdded = new HashMap<String, List<String>>();

Ich versuche, mit dieser Umsetzung:

mapGlobal = Stream.of(mapGlobal, mapAdded)
                .flatMap(m -> m.entrySet().stream())
                .collect(Collectors.groupingBy(Map.Entry::getKey,
                        Collectors.mapping(Map.Entry::getValue,        
                                           Collectors.toList())
                ));

Jedoch, diese Umsetzung nur ein Ergebnis erstellen, wie:

Map<String, List<Object>>

Wenn ein Schlüssel ist nicht enthalten in der mapGlobal es würde Hinzugefügt werden, sobald Sie einen neuen Schlüssel mit der entsprechenden Liste von String. Wenn der Schlüssel dupliziert wird in mapGlobal und mapAdded sowohl die Liste der Werte zusammenfassen als: A = {1, 3, 5, 7} und B = {1, 2, 4, 6} dann A ∪ B = {1, 2, 3, 4, 5, 6, 7}.

InformationsquelleAutor ypriverol | 2016-03-24
Schreibe einen Kommentar