java8 的 foreach 和 map 中使用 index

實體測試類

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Student  {
    private Integer age;
    private String name;
}

首先看在 map 中使用 index

guava 的 streams 工具

// test map with index
Streams.mapWithIndex(studentList.stream(),(t, index)->{
    System.out.println(t.getName());
    System.out.println(index);
return t.getName();
}).count();

forEach 中用到index

1)將 list 的 index 匯聚成流,然後遍歷 沒一個數據(index),然後再通過list 去 get 每一個元素

IntStream.range(0,studentList.size()).forEach(i->{
    System.out.println(studentList.get(i));
});

2)使用局部變量
如果定義的局部變量 int i = 0;
在lambda 表達式中會提醒
Variable used in lambda expression should be final or effectively final
我們可以定義一個int的數組。

int[] b = {0};
studentList.forEach(t->{
    System.out.println(b[0]++);
});

0
1
2
3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章