有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

收集器中映射的java默认值。toMap()

需要使用Collectors.toMap()将长值为零的List<Object>转换为Map<String,Long>

这里的对象指的是我自己定义的java类

List<Test> list = new ArrayList<Test>(); list.add(X); list.add(Y);
Map<String,Long> map = list.stream().collect(Collectors.toMap(Test:getName,XXXX)));

我的预期产出:

{"x",0},{"Y",0}

共 (1) 个答案

  1. # 1 楼答案

    可以对值使用lambda表达式:

    Map<String, Long> map = list.stream()
                               .collect(Collectors.toMap(Test:getName,x -> 0L,(a,b)->a));
    

    也可以使用BigDecimal常量

    Map<String, Long> map = list.stream()
                               .collect(Collectors.toMap(Test:getName,x -> BigDecimal.ZERO.longValue(),(a,b)->a));