Ich habe eine Liste von Objekten wie folgt aus:Java 8 Zuordnung von Listen Stream
[
{value: 1, tag: a},
{value: 2, tag: a},
{value: 3, tag: b},
{value: 4, tag: b},
{value: 5, tag: c},
]
wo jedes Objekt der es sich um eine Instanz einer Klasse ist Entry
, die tag
und value
als Eigenschaften aufweist. Ich möchte, dass sie auf diese Weise zur Gruppe:
{
a: [1, 2],
b: [3, 4],
c: [5],
}
Das ist, was ich bisher getan habe:
List<Entry> entries = <read from a file>
Map<String, List<Entry>> map = entries.stream()
.collect(Collectors.groupingBy(Entry::getTag, LinkedHashMap::new, toList()));
Und das ist mein Ergebnis (nicht das, was ich wollte):
{
a: [{value: 1, tag: a}, {value: 2, tag: a}],
b: [{value: 3, tag: b}, {value: 4, tag: b}],
c: [{value: 5, tag: c}],
}
Mit anderen Worten, ich möchte eine Liste von Zeichenfolgen als Werte meiner neuen Zuordnung (Map<String, List<String>>
), und nicht eine Liste von Objekten (Map<String, List<Entry>>
). Wie kann ich dies mit Java 8 neuen coolen Funktionen erreichen?
danke :) es funktionierte – Oneiros