QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 1187|回复: 0

[JAVA/JSP] java lambda循环

[复制链接]

等级头衔

积分成就    金币 : 2841
   泡泡 : 1516
   精华 : 6
   在线时间 : 1294 小时
   最后登录 : 2024-11-21

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2020-11-23 10:37:54 | 显示全部楼层 |阅读模式
       对于每个经常需要在Java 8(或更高版本)中使用多维数组的人来说,这只是一个快速技巧。在这种情况下,你可能经常会以类似于以下代码的结尾: & b$ m5 e4 \/ V, Y
  1. float[][] values = ...
  2. for (int i = 0; i < values.length; i++) {
  3.   for (int k = 0; k < values[i].length; k++) {
  4.     float value = values[i][k];
  5.     // do something with i, k and value
  6.   }
  7. }
      如果幸运的话,可以用for-each循环替换循环。但是,循环内的计算通常需要索引。在这种情况下,你可以提出一个简单的实用程序方法,如下所示:
; K6 X! G8 P1 Q
  1. private void loop(float[][] values, BiConsumer<Integer, Integer> consumer) {
  2.   for (int i = 0; i < values.length; i++) {
  3.     for (int k = 0; k < values[i].length; k++) {
  4.       consumer.accept(i, k);
  5.     }
  6.   }
  7. }
      现在,我们可以像这样循环遍历数组索引:5 t- a) M' M0 }4 G; f; w
  1. float[][] values = ...
  2. loop(values, (i, k) -> {
  3.   float value = values[i][k];
  4.   // do something with i, k and value
  5. });
      这样,你可以使循环代码脱离主要逻辑。当然,你应该更改所示的loop()方法,使其适合你的个人需求。
+ P0 D6 u+ z6 |0 w" d
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号|渝公网安备50010502503914号 )

GMT+8, 2024-11-22 05:15

Powered by paopaomj X3.5 © 2016-2025 sitemap

快速回复 返回顶部 返回列表