我有一个字符串列表,想将其转换为映射。我尝试了下面的代码,但似乎无法弄清楚为什么它不起作用。
似乎试图将一个字符串放进值(其类型为Double)中,而不是创建一个空/空置的double。
我希望这个映射表对于每条记录都包含一个字符串和0.0。
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)中,而不是创建一个空/空置的double。
我希望这个映射表对于每条记录都包含一个字符串和0.0。
Double
对象毫无意义。虽然o->0.0
可能会或可能不会每次创建一个新的Double
实例,但构造函数引用肯定会创建一个新的对象。在操作之前进行一次装箱,Double zero=0.0;
,然后使用o->zero
作为值映射函数可能会更好。 - Holger