我如何在每个循环中获取索引,并且如何执行1个以上的操作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在每个循环中获取索引,并且如何执行1个以上的操作?相关的知识,希望对你有一定的参考价值。
我有一些我从未见过的东西:一个有一些响应的forEach循环。它正在工作,但是,显然没有索引:请参见“ tmp_ip [0]”。我不知道如何在此forEach循环中获取索引。
String tmp_ip[] = new String[]{};
// print out responding servers
discoverer.getSearchResponses().forEach(r ->
tmp_ip[0] = r.getResponse().getPoint().toString()
);
我的第二个问题是,我需要在此forEach循环中进行更多操作,但我不知道如何做。
我尝试过的不起作用的示例:
String tmp_ip[] = new String[]{};
// print out responding servers
discoverer.getSearchResponses().forEach(r ->
tmp_ip[0] = r.getResponse().getPoint().toString();
sout("this is just an test and its called System.out. ... ");
);
我如何(1)在forEach循环中获取索引,以及(2)在该forEach循环中进行更多操作/声明?
答案
在for-each循环中您无法获得索引/迭代器。
您正在使用的不是for-each循环,而是
.forEach()
的Stream API
终端操作;您可以在lambda表达式中引入
{}
大括号以将多个语句作为一个块。例如forEach(s -> {...});
另一答案
// print out responding servers
discoverer.getSearchResponses().forEachIndexed(i,r ->
tmp_ip[i] = r.getResponse().getPoint().toString();
sout("this is just an test and its called System.out. ... ");
);
以上是关于我如何在每个循环中获取索引,并且如何执行1个以上的操作?的主要内容,如果未能解决你的问题,请参考以下文章