QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 1345|回复: 0

[JAVA/JSP] java lambda循环

[复制链接]

等级头衔

积分成就    金币 : 2857
   泡泡 : 1516
   精华 : 6
   在线时间 : 1317 小时
   最后登录 : 2025-3-19

丰功伟绩

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

联系方式
发表于 2020-11-23 10:37:54 | 显示全部楼层 |阅读模式
       对于每个经常需要在Java 8(或更高版本)中使用多维数组的人来说,这只是一个快速技巧。在这种情况下,你可能经常会以类似于以下代码的结尾: ; l2 d* R0 h- {  X7 A+ S$ x
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循环替换循环。但是,循环内的计算通常需要索引。在这种情况下,你可以提出一个简单的实用程序方法,如下所示:
( A  w9 g5 N# M! K, g9 G' \1 L
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);
    }
  }
}
      现在,我们可以像这样循环遍历数组索引:
: ~9 n/ Q; x% Q- W9 F4 y
float[][] values = ...
loop(values, (i, k) -> {
  float value = values[i][k];
  // do something with i, k and value
});
      这样,你可以使循环代码脱离主要逻辑。当然,你应该更改所示的loop()方法,使其适合你的个人需求。
0 D0 W5 u  \  t$ v3 O) c
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-5 05:54

Powered by paopaomj X3.5 © 2016-2025 sitemap

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