如何使用Java 8方法对List>结构中的每个元素应用一些更改
发布时间:2020-12-15 04:39:03 所属栏目:Java 来源:网络整理
导读:我有一些像List List Double的结构. listOfDoubles我需要将它转换为List List Integer listOfInteger.我在不使用 Java 8的情况下编写代码.它看起来像: ListListInteger integerList = new ArrayList();for (int i = 0; i doubleList.size(); i++) { for (Do
我有一些像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()); } } 我试图用foreach替换第二个,但不能因为我应该是最终的.如何使用Java 8方法编写此代码? 解决方法
您可以流式传输“外部”列表,生成Stream< List< Double>.然后,流式传输每个“内部”列表,将每个元素转换为整数并收集结果.然后只收集“外部”流.如果你把它们放在一起,你会得到这样的东西:
List<List<Integer>> integerList = doubleList.stream() .map(l -> l.stream() .map(Double::intValue) .collect(Collectors.toList())) .collect(Collectors.toList()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |