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

java8 lambda 将二维数组转换成list集合将二维数组int[][]转换成一个嵌套的List<List>的形式代码如下publicstaticList<List<Integer>>generate(intnumRows){int[][]ints=newint[numRows][numRows];for(inti=0;i<numRows;i++){for(intj=0;j<=i;j++){if

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

代码如下

public static List<List<Integer>> 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<List> 这种结果集,采用lambda来实现

实现一

List<List<Integer>> collect = Arrays.stream(ints).map(l -> { 
   
          return Arrays.stream(l)
              .boxed().collect(Collectors.toList());
        }).collect(Collectors.toList());

实现二

List<List<int[]>> collect2 = Arrays.stream(ints).map(Arrays::asList)
        .collect(Collectors.toList());

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

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

 List<Integer> collect = Arrays.stream(ints).flatMap(l -> { 
   
      return Arrays.stream(l).boxed();
    }).collect(Collectors.toList());
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172295.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring循环依赖到底怎么解决的_恋爱循环难吗

    spring循环依赖到底怎么解决的_恋爱循环难吗4.AOP中的循环依赖在看自动代理源码的过程中,突然注意到SmartInstantiationAwareBeanPostProcessor接口中的getEarlyBeanReference方法,它是Spring处理循环依赖时返回**未创建完(只实例化未做依赖注入)**Bean的扩展。关于循环依赖可以去Bean的循环依赖一章去详细了解,这里只做简单的说明。有两个单例Bean,A和B,A中引用了B…

    2022年8月11日
    9
  • 购物程序「建议收藏」

    购物程序「建议收藏」#-*-coding:utf-8-*-"""CreatedonTueSep1116:35:292018@author:车路历程"&

    2022年8月3日
    6
  • 【工作技巧】WinRAR去除广告

    【工作技巧】WinRAR去除广告一、下载软件1.1、进入WinRAR国内官网,根据个人电脑系统位数进行下载对应的安装包。傻瓜式安装WinRAR,全部点击下一步。1.3、进入ResourceHacker官网,点击Download,然后点击EXEinstall,下载安装包。傻瓜式安装ResourceHacker,全部点击下一步。二、修改WinRAR.exe2.1、打开ResourceHacker程序,使用快捷键【Ctrl+O】选择WinRAR.exe文件。一般路径为【D:\ProgramFiles\WinRAR\Wi

    2022年5月9日
    47
  • 计算机网络之ip、子网掩码、网络号、主机号等概念解析

    计算机网络之ip、子网掩码、网络号、主机号等概念解析在工作中谈论到计算机网络时,有几个经常出现的术语,比如:ip、子网掩码、网段等等。之前对这些概念的理解都比较模糊,只知其大概意思,随着工作中遇到的网络问题越来越多,有必要详细理解一下计算机网络的基础知识了。这篇文章就先介绍几个计算机网络领域的专业术语。IP地址ip这个词是计算机网络中出现频率最高的了,甚至只要使用过电脑的人都知道这个词。IP地址全程是互联网协议地址(英文:InternetPr…

    2022年6月24日
    38
  • 自动化测试 数据驱动(自动化测试解决数据错误)

    数据驱动将测试数据和测试行为完全分离,实施数据驱动测试步骤如下:A、编写测试脚本,脚本需要支持从程序对象、文件或者数据库读入测试数据;B、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中;C、运行脚本过程中,循环调用存储在外部介质中的测试数据;D、验证所有的测试结果是否符合预期结果; 1、使用unittest和ddt进行数据驱动:#-*-coding…

    2022年4月18日
    42
  • 什么样的水平才算是java高级工程师?

    什么样的水平才算是java高级工程师?「高级工程师」这个词听起来就好像是逼格高的意思,事实上,这是个模糊概念,高不高级没有个标准。做高级的工作才算是高级、还是说职称上带有「高级」字样。我所见过的一些所谓高级的职位或是头上写着高级的人,明明是对这个词的蔑视。每个人对高级的理解都是不一样的,下面就以我理解的高级工程师进行回答,不一定只适合“Java”方面的,如果一个工程师只是局限在一种语言内的“高级”实际上并不会太高级。Java,这个…

    2022年7月7日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号