函数式编程

函数式编程:基于函数式接口并使用lamda表达式的编程,将代码作为可重用数据带入到程序运行中。
函数式接口:只有一个抽象方法,如java.lang.Runnable
JDK8后提供了新的函数式接口,位于java.util.function

常用函数式接口:
函数式编程_第1张图片

函数式接口Predicate< T >:
用于测试传入的数据是否满足判断要求,通过test()方法进行逻辑判断,满足条件返回true,不满足返回false

Predicate<Integer> predicate=n->n>4;
boolean result=predicate.test(10);//true
List<Integer> list=Arrays.asList(1,2,3,4,5,6,7);
filter(list,n->n%2==0);
}
public static void filter(List<Integer> list,Predicate<Integer> predicate){	
	for(Integer num:list){
	if(predicate.test(num)){
		System.out.println(num);
	}
}

函数式接口Consumer< T >:
有一个输入参数,无输出结果,通过调用accpt()方法

	output(s->System.out.println(s))
public static void output(Consumer<String> consumer){
	String text="XXXXXXXXXXX";
	consumer.accept(text);

函数式接口Function:
有一个输入参数,需要返回数据,通过调用apply()方法

//生成定长随机字符串
	Function<Integer,String> randomString=l->{
		String chars="abcdefghijklmnopqrstuvwxyz0123456789";
		StringBuffer sb=new StringBuffer();
		Random random=new Random();
		for(int i=0;i<l;i++){
			int position=random.nextInt(chars.length());
			sb.append(chars.charAt(position));
		}
		return sb.toString();
	};
	randomString.apply(5);//生成长度为5的随机字符串

你可能感兴趣的:(Java,java)