加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何使用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());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读