我是Streams的新手,我有一个长值列表。我想使用流将长值列表转换为双值列表。
这里是代码:
List<Long> list = new ArrayList<>();
list.add(4L);
list.add(92L);
list.add(100L);
我想将列表转换为List<double>
。谢谢
您必须使用map
运算符将long转换为double,然后使用toList收集器。
List<Double> doubleList = list.stream()
.map(v -> Double.valueOf(v))
.collect(Collectors.toList());
List<Double> collect1 = list.stream().mapToDouble(s -> s).boxed().collect(Collectors.toList());
警告:boxing()
是开销。
尝试以下行为:
List<Double> doubles = list.stream().map(e -> Double.valueOf(e)).collect(Collectors.toList());
说明
list.stream().
这使您创建(并遍历)流。
map(e -> Double.valueOf(e))
您迭代的每个(长)元素,将被映射为Double
.collect(Collectors.toList());
将其映射到List<Double>
。