java8 函数接口 Predicate例子

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;
	}
}
原文地址:https://www.cnblogs.com/masterlibin/p/4750571.html