我想将以下代码转换为lamda表达式,尤其是以粗体显示的FOR LOOP,从第一个索引开始并跳过下一个索引[i = i + 2]
public static List<Integer> integerArrayList = Arrays.asList(0, 1, 2, 3, 4, 5, 6);
Thread oddThread8 = new Thread(() -> {
List<Integer> integerArrayList = ReadList8Refctor.getIntegerList();
int listSize = integerArrayList.size();
for(int i=1; i<listSize; i=i+2) {
System.out.println(Thread.currentThread().getName()+" - "+integerArrayList.get(i));
}
}, "ODD");
我得到了完美的输出,请帮助我重构FOR LOOP,在此先感谢
ODD - 1
ODD - 3
ODD - 5
EVEN - 0
EVEN - 2
EVEN - 4
EVEN - 6
如果使用的是Java-9,则可以使用:-
在Java-8上,您可以使用IntStream.range()
来做到这一点>
IntStream.range(1, listSize)
.filter(i->i%2!=0)
.forEach(i->System.out.println(Thread.currentThread().getName()+" - "+integerArrayList.get(i)));
您也可以使用foreach来做到这一点: