import java.util.HashSet; import java.util.Collection; import java.util.function.Predicate; public class PredicateTest2 { public static void main(String[] args) { Collection books = new HashSet(); books.add("java"); books.add("疯狂"); books.add("C"); System.out.println("包含疯狂的数量:"+calAll(books,obj->((String)obj).contains("疯狂"))); System.out.println("包含java的数量:"+calAll(books,obj->((String)obj).contains("java"))); System.out.println("包含C++的数量:"+calAll(books,obj->((String)obj).contains("c++"))); } /*函数接口是只含有一个抽象方法的接口 Predicate函数接口只有一个test方法,根据条件返回boolean*/ public static int calAll(Collection books,Predicate p) { int total = 0; for (Object obj : books) { if(p.test(obj)) { total ++; } } return total; } }