對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2019/7/22 13:52:28
Java 8 Lambda Collection forEach() 用法
Java 8 Collection
的 forEach()
用法如下。
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("matt","john","gary");
// 使用for loop
for(int i = 0 ; i < list.size() ; i++ ) {
System.out.println(list.get(i));
}
// 使用for-each loop
for(String s : list) {
System.out.println(s);
}
// 使用Java 8 forEach()
list.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
// 使用Java 8 forEach() 搭配 Lambda語法
list.forEach(s -> System.out.println(s));
// 使用Java 8 forEach() 搭配 Lambda 及 Method References語法
list.forEach(System.out::println);
}
}
上面範例中每個loop的結果都相同。
在Java 8的 Iterable
介面新增了 forEach()
方法,接收的參數為 Consumer
介面的實作,而 Consumer
是只有一個抽象方法( accept()
)的 Functional Interface,所以可以用 Lambda語法改寫。
原文出處:菜鳥工程師 肉豬: Java 8 Lambda Collection forEach() 用法