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

Java 收集器中映射的默认值。toMap(),java,collections,java-8,java-stream,Java,Collections,Java 8,Java Stream,需要使用collector.toMap()将List转换为长值为零的Map 这里的对象指的是我自己定义的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))); 可以对值使用lambda表达式: Map&l

需要使用
collector.toMap()
List
转换为长值为零的
Map

这里的对象指的是我自己定义的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)));

可以对值使用lambda表达式:

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

我建议您在
toMap()
中添加
mergeFunction
,这将使集合更加健壮<代码>list.stream().collect(Collectors.toMap(测试:getName,x->0L,(a,b)->a))
Map<String, Long> map = list.stream()
                           .collect(Collectors.toMap(Test:getName,x -> 0L,(a,b)->a));
Map<String, Long> map = list.stream()
                           .collect(Collectors.toMap(Test:getName,x -> BigDecimal.ZERO.longValue(),(a,b)->a));