我得到了一个要转换为地图的字符串列表。我尝试了下面的方法,但我似乎不明白为什么它不起作用
List<String> dataList = new ArrayList<>( //code to create the list );
Map<String, Double> doubleMap = dataList.stream().collect(Collectors.toMap(o->o, Double::new));
我得到的只是:
java.lang.NumberFormatException: For input string: "Test1"
它似乎试图将一个字符串放入值(这是一个 Double )而不是创建一个空/空双精度。
我本质上希望地图包含字符串,每条记录为 0.0。
您正在尝试通过String
to the public Double(String s)
构造函数,如果你的List
包含任何String
不能被解析为double
.
当您传递 a 的方法引用时Double
构造函数到toMap
,它相当于:
Map<String, Double> doubleMap = dataList.stream().collect(Collectors.toMap(o->o, o->new Double(o)));
相反,写:
Map<String, Double> doubleMap = dataList.stream().collect(Collectors.toMap(o->o, o->0.0));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)