Java 8 Streams API - 列表到映射 - 合并键

dee*_*ejo 0 merge hashmap java-8 java-stream

我有一个 Fruit 对象列表,其中每个 Fruit 都有一个'name''desc'。此水果列表将包含'name'不同的重复项'desc'i.e.

{"apple","its red"},{"banana","its yellow"},{"apple", "its hard"}
Run Code Online (Sandbox Code Playgroud)

现在,我想使用 Java 8 Streams API 迭代此 Fruits 列表,并将它们映射到 MAP 中,使得键为“name”且不得包含重复项。

输出应该是:

key - "apple", value - List of desc i.e.  {"its red","its hard"}
key - "banana", value - {"its yellow"}
Run Code Online (Sandbox Code Playgroud)

请指导。

Eug*_*ene 5

像这样的东西,显然没有编译......

yourFruitList.stream()
       .collect(Collectors.groupingBy(
             Fruit::getName,
             Collectors.mapping(Fruit::getDesc, Collectors.toList())
       ))
Run Code Online (Sandbox Code Playgroud)

  • @哈迪 不用担心 (2认同)