QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 1283|回复: 0

[JAVA/JSP] java lambda循环

[复制链接]

等级头衔

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

丰功伟绩

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

联系方式
发表于 2020-11-23 10:37:54 | 显示全部楼层 |阅读模式
       对于每个经常需要在Java 8(或更高版本)中使用多维数组的人来说,这只是一个快速技巧。在这种情况下,你可能经常会以类似于以下代码的结尾: ) T0 p! ?( R# A. _3 F
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循环替换循环。但是,循环内的计算通常需要索引。在这种情况下,你可以提出一个简单的实用程序方法,如下所示:
8 g4 e6 @$ q. }8 `5 O4 h  _( t# [+ t
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);
    }
  }
}
      现在,我们可以像这样循环遍历数组索引:
( i! o  G6 j( J( X  b# O
float[][] values = ...
loop(values, (i, k) -> {
  float value = values[i][k];
  // do something with i, k and value
});
      这样,你可以使循环代码脱离主要逻辑。当然,你应该更改所示的loop()方法,使其适合你的个人需求。
- G( X2 G5 @, O: E8 O% t& v
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-22 15:35

Powered by paopaomj X3.5 © 2016-2025 sitemap

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