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判斷的邏輯。