java lambda循环

对于每个经常需要在Java 8(或更高版本)中使用多维数组的人来说,这只是一个快速技巧。

在这种情况下,您可能经常会以类似于以下代码的结尾:

float[][] values = ...
for (int i = 0; i < values.length; i++) {for (int k = 0; k < values[i].length; k++) {float value = values[i][k];// do something with i, k and value}
}

如果幸运的话,可以用for-each循环替换循环。 但是,循环内的计算通常需要索引。

在这种情况下,您可以提出一个简单的实用程序方法,如下所示:

private void loop(float[][] values, BiConsumer<Integer, Integer> consumer) {for (int i = 0; i < values.length; i++) {for (int k = 0; k < values[i].length; k++) {consumer.accept(i, k);}}
}

现在,我们可以像这样循环遍历数组索引:

float[][] values = ...
loop(values, (i, k) -> {float value = values[i][k];// do something with i, k and value
});

这样,您可以使循环代码脱离主要逻辑。

当然,您应该更改所示的loop()方法,使其适合您的个人需求。

翻译自: https://www.javacodegeeks.com/2016/04/simplifying-nested-loops-java-8-lambdas.html

java lambda循环

java lambda循环_使用Java 8 Lambda简化嵌套循环相关推荐

  1. java lambda循环_在Java 8 Lambda中创建自己的循环结构

    java lambda循环 Java没有简单的结构可以重复N次. 当然,我们可以创建一个for循环,但是很多时候我们甚至都不关心在循环中创建的变量. 我们只想重复一些代码N次,仅此而已. 使用Java ...

  2. java游戏循环_利用Java循环语句实现攻击防御塔小游戏

    /* * 时间:2018-3-21 * 目的:practice * 内容:利用Java循环语句实现攻击防御塔小游戏 * 使用Java while语句实现一个英雄攻击防御塔的小程序,防御塔血量总计100 ...

  3. java lambda 反射_反射调用与Lambda表达式调用

    想调用一个方法很容易,直接代码调用就行,这人人都会.其次呢,还可以使用反射.不过通过反射调用的性能会远远低于直接调用--至少从绝对时间上来看的确是这样.虽然这是个众所周知的现象,我们还是来写个程序来验 ...

  4. java lambda使用_使用Java 8和Lambda简化ReadWriteLock

    java lambda使用 考虑到旧版Java代码,无论您在哪里看,带有lambda表达式的Java 8绝对可以提高质量和可读性. 今天,让我们看一下ReadWriteLock以及如何使它使用起来更简 ...

  5. java 自定义表达式_自定义 Java Lambda

    用了这么久的 Java,也体验了 Java 8 的 lambda 带来的便捷,但是我一直都是直接用,而从未想过他是如何实现的.比如:为什么在小括号里面可以放一个函数作为参数,自己造一个lambda 应 ...

  6. java 复合方法_《Java 8 实战》Ch3: Lambda表达式(下):类型与限制、方法引用、复合...

    李文轩 2019-04-23 3.5 类型的检查和判断:变量捕获限制 类型检查 Lambda的类型是从使用Lambda的上下文推断出来的. Lambda表达式需要的类型称为目标类型 . Lambda表 ...

  7. 用标号跳出当前多重嵌套循环是否继续执行循环_在Java中如何跳出当前的多重嵌套循环?...

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java专业知识,广州疯狂java培训为你讲解; 1.在java中如何跳出当前的 ...

  8. java核心教程_核心Java教程

    java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...

  9. java运算符重载_为什么Java不支持运算符重载?

    Java不支持运算符重载 = 小白也能学编程 Java之所以不支持运算符重载,并不是如下原因: 会使JVM变得复杂.性能下降:君不见C++内置运算符重载的能力?C++的性能在任何时代秒杀Java相信没 ...

最新文章

  1. Dubbo启动时检查
  2. 同一类的不同对象,在调用相同的成员函数时,入口地址是相同的
  3. 大数据时代下的迁移学习_继深度学习后,下一个热点技术是迁移学习
  4. Spring 3.1缓存和@CacheEvict
  5. 【设计模式】五、单例模式(独一无二的对象)
  6. java stream group_Java8 Stream之group
  7. JS-DOM-节点-获取元素-文档结构-元素的属性
  8. oracle出现12505错误的解决步骤
  9. 【CSS】css控制模块到顶层或底层
  10. 解决 Failed to connect to github.com port 443:connection timed out
  11. 增加限制模拟器2006-2-11
  12. 用matlab对微分方程组进行仿真,基于MATLAB的微分方程组的数值计算
  13. yolov3训练实现火焰检测(pytorch)
  14. ionic 中使用 slidebox 利用angular ng-repeat 渲染后不显示问题
  15. 审计工作存在的难点和问题_浅谈审计整改工作存在的困难及对策
  16. python调用金山词霸的api
  17. css background动态图片,CSS3 background-position定位背景图片动画效果
  18. 2.1 分布式文件系统HDFS-使用
  19. java解决 No enclosing instance of type XXX is accessible的问题
  20. SNIPER: Efficient Multi-Scale Training

热门文章

  1. 新汉诺塔(洛谷P1242)含第11个数据的解决办法
  2. P8208-[THUPC2022 初赛]骰子旅行【dp】
  3. jzoj5698-[gdoi2018day1]密码锁【贪心,差分】
  4. P4170-[CQOI2007]涂色【区间dp】
  5. jzoj3626-[LNOI2014]LCA【树链剖分,线段树】
  6. P3952-时间复杂度【模拟】
  7. POJ1821-Fence【单调队列,dp】
  8. 背包例题【dp练习】
  9. 14、使用play搭建一个web应用用例
  10. 25、jdbc操作数据库(2)