当前位置: 首页 > 知识库问答 >
问题:

要映射的流收集列表[重复]

仲孙兴平
2023-03-14

我有这个代码:

    List<String> list = Arrays.asList("a", "b", "c", "a", "c");
    Map<String, List<String>> map = list.stream().collect(Collectors.groupingBy(
    Function.identity() ,
    Collectors.toCollection(ArrayList::new)
    ));

它产生的是

  {a=[a, a], b=[b], c=[c, c]}

很高兴我应该如何写映射方法来得到一个地图,它会给我:

{a=2, b=1, c=2}

共有1个答案

卜瀚漠
2023-03-14

使用Collectors.counting

list.stream().collect(Collectors.groupingBy(
            Function.identity(), Collectors.counting()));

以上内容将为您提供一张地图

 类似资料:
  • 我想使用Java流按对用户列表进行分组。 例如,我有。

  • 我得到的示例代码是 输入是一个啤酒对象列表,它返回一个包含所有啤酒的啤酒类型的地图。 现在我的问题。分组中的第二个和第三个论点是什么?我得到了第一个说明它是由什么分组的...但是第二个和第三个看起来有点随机。

  • 我有一个实体,看起来像这样: 输入数据是一个

  • 当流过< code>List时,如何将输出收集到一个链表中? 我尝试了以下方法: 但是这给了 java.util.数组列表不能转换为 java.util.链接列表.

  • 以下代码 由IntelliJ转换为: 可以缩短为 这两个流版本不编译。 IntelliJ,暗示值中的i存在问题[i]: 不兼容的类型 必需:int找到:java。lang.对象 编译器抱怨: 错误:(35,17)java:接口java中的方法collect。util。流动IntStream不能应用于给定类型 必需:java。util。作用供应商,爪哇。util。作用ObjIntConsumer,j

  • 我使用Java 8 streams尝试了以下代码: 我得到的是一个< code >列表 我正确地得到了一个