函数式接口

函数式接口

有且只有一个抽象方法的接口
定义:一个借口定义一个抽象方法
一般作为参数和返回值类型调用

函数式编程

只管具体结果实现,不管过程如何

Lambda 延迟执行,提升性能

常用函数式接口

Supplier

生产型接口 制定接口泛型是神魔类型,接口中get就会产生什么类型 get方法

package commonuserfunc;

import java.util.function.Supplier;



public class supplierTest {
	public static String getString(Supplier<String> s){
		return s.get();
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	  String s = getString(/*new Supplier<String>() {

			@Override
			public String get() {
				// TODO Auto-generated method stub
				return "胡歌";
			}
		}*/
			  
			  
			  ()->"胡歌");
	  System.out.println(s);

	}
}

Consumer

, 顾客接口 消费一个数据,其数据类型由泛型决定 其接口使用 accept 方法
Andthen()

package commonuserfunc;

import java.util.function.Consumer;

public class cinsumerTest {
	public static void co(String name,Consumer<String> con,Consumer<String> con1){
		con.andThen(con1).accept(name);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       co("赵丽颖", (String name)->{
    	   //System.out.println(name)
    	   String newname=new StringBuilder(name).reverse().toString();
    	   System.out.println("new"+newname);
    	   
    	   },(String na)->{System.out.println(na);} );
       }

	
	


}

Predicate

对某种数据进行判断,结果返回一个布尔值 test方法判断
And

package commonuserfunc;

import java.util.function.Predicate;

public class predicateTest {
	public static boolean stringPredicate(String str,Predicate<String> p1,Predicate<String> p2)
	{
//		return p1.test(str)&&p2.test(str);
//		return p1.and(p2).test(str);
		return p1.or(p2).test(str);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		boolean b = stringPredicate(new String("abcdefg"), (String s)->{return s.length()>5;}, (String s)->{return s.contains("a");});
        if(b=true){
        	System.out.println("字符串符合条件");
        }
        
	}

}

Function

对某种数据进行转换 apply方法

package streamTest;

import java.util.stream.Stream;

public class Maptest {
	public static void main(String[] args) {
		
		Stream<String> s=Stream.of("1","2","3","4");
		//使用map方法把字符串类型的
		Stream<Integer> map = s.map((String s1)->{return Integer.parseInt(s1);});
		map.forEach(i->System.out.println(i));
		
		
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值