栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java8 lambda 将二维数组转换成list集合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java8 lambda 将二维数组转换成list集合

将二维数组int[][]转换成一个嵌套的List> 的形式

代码如下

public static List> generate(int numRows) {
    int[][] ints = new int[numRows][numRows];
    for (int i = 0; i < numRows; i++) {
      for (int j = 0; j <= i; j++) {
        if (j == 0 || j == i) {
          ints[i][j] = 1;
        } else {
          ints[i][j] = ints[i - 1][j - 1] + ints[i - 1][j];
        }
      }
    }
    //todo
  
  }}

最后需要 List 这种结果集,采用lambda来实现

实现一
List> collect = Arrays.stream(ints).map(l -> {
          return Arrays.stream(l)
              .boxed().collect(Collectors.toList());
        }).collect(Collectors.toList());
实现二
List> collect2 = Arrays.stream(ints).map(Arrays::asList)
        .collect(Collectors.toList());

会发现 实现二返回的并不是我们需要的形式,实现一才是我们需要的,原因是需要进行一次装箱即可,采用实现一即可

如果需要合并成一个List的形式需要用到 flatMap拆分流

 List collect = Arrays.stream(ints).flatMap(l -> {
      return Arrays.stream(l).boxed();
    }).collect(Collectors.toList());
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/733230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号