網頁

2017/12/27

Java 8 Lambda Collection forEach() 用法

Java 8 CollectionforEach()用法如下。

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語法改寫。


如果覺得文章有幫助的話還幫忙點個Google廣告,感恩。


沒有留言:

張貼留言