编写数学优化算法时遇到一个问题:如何将一个二维数组满足一定条件的行,筛选出来并组成一个新的数组。

传统思路:

编写一个专门的方法,这个方法返回满足条件的新数组,但数组必须首选确定满足条件的行数,有点麻烦。

或者使用 ArrayList, 使用 add 来添加满足条件的行,但最后还得把 ArrayList 转化成数组,也有点麻烦。

新思路:

使用 lambda 表达式,将二维数组转化成 stream, 使用 filter 过滤条件, 然后将过滤后的数组转化为二维数组。

举例:从一个二维数组中筛选出第四个元素大于5的行。

import java.util.Arrays;public class HelloWorld {public static void main(String[] args) {int[][] a = {{3, 6, 8, 10}, {4, 5, 6, 7}, {1, 2, 3, 4}}; // 筛选出第四个元素大于5的行        int[][] b = Arrays.stream(a).filter(p -> p[3] > 5).map(i -> Arrays.stream(i).toArray()).toArray(int[][] :: new);System.out.println(Arrays.deepToString(b));}
}

注: 必须首先用一个 map 将 每一个行引用转化成一维数组,然后在用第二个 toArray 结合 二维数组的构造函数,转化成二维数组。

输出结果:

[[3, 6, 8, 10], [4, 5, 6, 7]]

转载于:https://www.cnblogs.com/robinchen/p/11047605.html

java 使用 lamba 表达式处理二维数组相关推荐

  1. java读取图片成rgb二维数组

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java读取图片成rgb二维数组 测试代码 public static void main(String[] args) {Color[][] a ...

  2. Java IDEA Debug进制二维数组

    1.Debug模式 1.1 什么是Debug模式 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. 1.2 Debug介绍与操作流程 如何加断点 选择 ...

  3. 1.22 实例:Java输出杨辉三角形(使用二维数组)

    利用 Java 的二维数组来输出指定行数的杨辉三角形. 杨辉三角形由数字进行排列,可以把它看作是一个数字表,其基本特性是两侧数值均为 1,其他位置的数值是其左上方数值与右上角数值之和.打印杨辉三角形时 ...

  4. Java中Arrays.toString ()打印二维数组及Array数组的常用操作

    1.Java中Arrays.toString () 已知打印一维数组的API为System.out.println ( Arrays.toString ();,其参数为数组名或数组指针,其支持的数据类 ...

  5. JAVA进阶开发之(二维数组)

    1.二维数组其实是一个特殊的一维数组,特殊在这个二维数组中每一个元素是一个一维数组 2.就是一维数组里面都是一样的元素,二维数组就是把元素换成了一维数组 3.实际开发中,使用最多的就是一维数组,二维数 ...

  6. 【Java】 杨辉三角 二维数组打印杨辉三角

    Tips 打印三角的操作 : 每行打印前预留空格 打印指定数量的星号后换行 重复循环打印直至完成所有打印结果 杨辉三角: 三角规律空格最大对称值为 5 大于 5 则会变形 三角规律为当前值为上一个值加 ...

  7. java语言:创建一个二维数组,将古诗《春晓》的内容赋值于二维数组,然后分别用横版和竖版两种方式输出。

    问题:创建一个二维数组,将古诗<春晓>的内容赋值于二维数组,然后分别用横版和竖版两种方式输出. 前两天上java课的时候老师,给我们出了这道题.要求:要用java语言来写. 根据要求创建的 ...

  8. 剑指offer编程题Java实现——面试题3二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 下面是我实现的代码,修 ...

  9. java 程序题 二分法查找二维数组(Dichotomy)

    一个二分法查找二维数组的程序题 public class Search2DMatrix {public static void main(String[] args){int[][] matrix = ...

最新文章

  1. c# winform 关于给静态全局变量赋值的问题
  2. SQL基础操作_7_时间运算
  3. Oracle Grid 11.2.0.4 安装是出现INS-30510: Insufficient number of ASM disks selected.
  4. 【Elasticsearch】用Elasticsearch和Raspberry Pi构建一个真实世界的警报
  5. 友元函数的访问权限和注意事项
  6. 轻松调用Google翻译
  7. android启动第三方浏览器问题
  8. xp系统支持64g内存_让WindowsXP SP3支持64G内存,继续发回余热
  9. 邮件服务器需要445端口,445端口是什么服务端口(2)
  10. JavaScript插入DOM
  11. css防止高度塌陷,css之高度塌陷及其解决方法
  12. Obsidian css-snippets配置
  13. Mycat读写分离、主从切换、分库分表的操作记录 https://www.cnblogs.com/kevingrace/p/9365840.html
  14. 【python脚本】linux中编写运行python脚本
  15. c语言学生请假系统项目总结,学生管理系统项目总结.doc
  16. Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
  17. 光场相机模拟程序解读
  18. 百度音乐电台升级紧跟豆瓣FM:强调坚持免费
  19. 纪念胡新宇君(转载)
  20. 复试-网安开放性问题

热门文章

  1. simulink怎么生成vxworks的执行程序_让天下没有难改的Simulink模型
  2. 调整jvm参数_JVM源码分析之MetaspaceSize和MaxMetaspaceSize的区别
  3. MFC UpdateData
  4. python xml转字典_python xml转成dict
  5. wpf messagebox.show()点击其他地方会闪烁_定时、童锁、故障查询,线控器上的这些功能你会用吗?...
  6. android create命令,phonegap运行android – create命令失败,退出代码8 – linux
  7. Python数据结构与算法(2.3)——链表
  8. 深度学习常用性能评价指标
  9. java字符串转字符串数组_Java字符串数组到字符串
  10. kotlin web_Kotlin Web应用程序教程