函数式编程

本文介绍了函数式编程的概念,重点讲解了Java8中基于lamda表达式的函数式接口,如Predicate(用于测试数据)、Consumer(无输出操作)和Function(有输入输出)。通过实例展示了如何在实际编程中运用这些接口。
摘要由CSDN通过智能技术生成

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

常用函数式接口:
在这里插入图片描述

函数式接口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<T,R>:
有一个输入参数,需要返回数据,通过调用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的随机字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值