JDK8相關:Collection類stream()+filter()+forEach()方法的聯合使用

        List<String> strArr = Arrays.asList("1", "2", "3", "4");

        strArr.stream().filter(str ->{
            return "2".equals(str)?true:false;
        }).forEach(str ->{
            System.out.println(str);
        });

以上代碼,只會打印  2。

stream方法獲取指向當前Collection對象的流對象,filter將對流中元素進行過濾,結合lambda表達式,需要在filter參數中實現一個類似於比較器的Predicate對象,返回一個boolean類型返回值,只有返回爲true的Collection中的元素纔會進入到forEach的循環中。


List<String> strArr = Arrays.asList("21", "22", "3", "4");

        strArr.stream().filter(str ->{
            return str.startsWith("2");
        }).filter(str ->{
            return str.equals("22");
        }).forEach(str ->{
            System.out.println(str);
        });
filter可以多重添加,類似於原本forEach對每個元素進行if判斷的邏輯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章