5

次のようなオブジェクトのリストがあります。

[
    {value: 1, tag: a},
    {value: 2, tag: a},
    {value: 3, tag: b},
    {value: 4, tag: b},
    {value: 5, tag: c},
]

そのすべてのオブジェクトは class のインスタンスであり、プロパティとしてとをEntry持ちます。私はこのようにそれらをグループ化したい:tagvalue

{
    a: [1, 2],
    b: [3, 4],
    c: [5],
}

これは私がこれまでに行ったことです:

List<Entry> entries = <read from a file>

Map<String, List<Entry>> map = entries.stream()
   .collect(Collectors.groupingBy(Entry::getTag, LinkedHashMap::new, toList()));

そして、これは私の結果です(私が望んでいたものではありません):

{
    a: [{value: 1, tag: a}, {value: 2, tag: a}],
    b: [{value: 3, tag: b}, {value: 4, tag: b}],
    c: [{value: 5, tag: c}],
}

Map<String, List<String>>つまり、オブジェクトのリスト( ) ではなく、新しいマッピングの値として文字列のリスト ( ) が必要Map<String, List<Entry>>です。Java 8 の新しいクールな機能を使用してこれを実現するにはどうすればよいですか?

4

1 に答える 1