我有一些类似 List<List<Double>> listOfDoubles
的结构我需要将其转换为 List<List<Integer>> listOfInteger
.我在没有使用 Java 8 的情况下编写了代码。它看起来像:
List<List<Integer>> integerList = new ArrayList<>();
for (int i = 0; i < doubleList.size(); i++) {
for (Double doubleValue : doubleList.get(i)) {
integerList.get(i).add(doubleValue.intValue());
}
}
我试图替换第二个 for
通过 foreach
但不能因为i
应该是最终的。如何使用 Java 8 方法编写此代码?
最佳答案
您可以流式传输“外部”列表,生成 Stream<List<Double>
.然后,流式传输每个“内部”列表,将每个元素转换为 Integer
并收集结果。然后只收集“外部”流。如果你把它们放在一起,你会得到这样的东西:
List<List<Integer>> integerList =
doubleList.stream()
.map(l -> l.stream()
.map(Double::intValue)
.collect(Collectors.toList()))
.collect(Collectors.toList());
关于java - 如何使用 Java 8 方法对 List<List<>> 结构中的每个元素应用一些更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317087/