2017-01-04 2 views
0

Gegeben eine Set<String>, wie verwende ich Java-Streams, um eine Set<Map> zu erstellen, wobei jede Zeichenfolge s eine Zuordnung mit einem einzigen Schlüssel/Wert-Paar mit Schlüssel "x" und Wert s wird?Wie verwende ich Java-Streams, um eine Reihe von Zeichenfolgen in eine Reihe von Maps zu konvertieren?

Etwas Ähnliches, aber ich brauche eine weitere Ebene von collect es irgendwo in: set.stream().collect(Collectors.toMap(p->"x", v->v))

+0

Nur ein Schlüssel/Wert-Paar pro Karte im Satz, @Eran. –

+0

Was sollte der Schlüssel für jeden Wert im Set sein? Wenn alle Werte in dem Satz mit Schlüssel als "x" in die Karte eingefügt werden sollen, ist dies nicht möglich. Da doppelte Schlüssel nicht vorhanden sein können. –

+0

@BandiKishore, der Schlüssel sollte die gleiche Zeichenfolge in jeder Zuordnung "x" sein, aber jede Zeichenfolge in der Gruppe wird in eine separate Zuordnung eingefügt. –

Antwort

1

Sie Collections.singletonMap verwenden können jede String einen Map<String,String> abzubilden. Dann können Sie die Map s in eine Set sammeln:

Set<Map<String,String>> mset = set.stream() 
            .map(s -> Collections.singletonMap("x",s)) 
            .collect(Collectors.toSet()); 
+0

Das ist schön! Vielen Dank! –

Verwandte Themen