QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

泡泡马甲APP 更多内容请下载泡泡马甲手机客户端APP 立即下载 ×
查看: 1127|回复: 0

[JAVA/JSP] java lambda循环

[复制链接]

等级头衔

积分成就    金币 : 2806
   泡泡 : 1516
   精华 : 6
   在线时间 : 1244 小时
   最后登录 : 2024-5-5

丰功伟绩

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

联系方式
发表于 2020-11-23 10:37:54 | 显示全部楼层 |阅读模式
       对于每个经常需要在Java 8(或更高版本)中使用多维数组的人来说,这只是一个快速技巧。在这种情况下,你可能经常会以类似于以下代码的结尾:
& |: E8 E% G, V. K, e/ T) T
  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循环替换循环。但是,循环内的计算通常需要索引。在这种情况下,你可以提出一个简单的实用程序方法,如下所示:
- Y9 u3 E& O$ ?7 `  ?
  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. }
      现在,我们可以像这样循环遍历数组索引:
6 J5 n: l) G  D/ Y& t& p
  1. float[][] values = ...
  2. loop(values, (i, k) -> {
  3.   float value = values[i][k];
  4.   // do something with i, k and value
  5. });
      这样,你可以使循环代码脱离主要逻辑。当然,你应该更改所示的loop()方法,使其适合你的个人需求。
, B: m; M5 t9 b+ a1 [( k. U+ H* L( s
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-10 09:21

Powered by paopaomj X3.4 © 2016-2024 sitemap

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