Java8的Stream流为我们的遍历集合带来了方便,基本可以取代for循环了。但是有一些情况需要知道当前遍历的索引,使用for循环当然可以轻易获得,但使用stream就很难了。
比如下面这个情况:
有一个集合list,里面存储的是引用类型。
使用for循环可以轻易的操作索引i
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
Stream流 方法1
Stream.iterate(0, i -> i + 1).limit(list.size()).forEach(i -> {
System.out.println(list.get(i));
});
Stream流 方法2
IntStream.range(0, list.size()).forEach(i -> {
System.out.println(list.get(i));
});