二、Lambda 四大内置核心函数式接口

Lambda 四大内置核心函数式接口
直接上代码

public class TestLambda{
	
	/**1.Consuner<T> 消费型接口
	  *     void accept(T t); 接收一个参数 ,无返回值
	  **/
   @Test
   public void test1(){
		happy(1000,(m)->System.out.println("每次消费"+ m + "元"));
	}
   
   public void happy(double money,Consumer<Double> con){
		con.appcept(money);
	}

  /**
    * 2.Supplier<T> 供给型接口
    **/
  @Test
  public void test(){
      List<Integer> numList = getNumList(10,()->(int) Math.random() * 100);
      for(Integer n : numList){
		System.out.println(n);	
	  }
 } 
  /**
    * 需求 产生指定个数整数放入到集合中
    **/
    public List<Integer> getNumList(int num,Suppliser<Integer> sup){
			List<Integer> list = new ArrayList<>();
			for(int i = 0 ; i< num ;i++){
				Integer n = supper.get();
				list.add(n);	
			}
			return list;
     }
     
     /**
       * 3.Function<T,R> 函数型接口
       *   T 入参类型
       *   R 返回参数类型
       **/
    @Test
    public void test2(){
		String newStr = strHandler("\t\t\t\t Hello World",(str) ->str.trim());
		System.out.println(str);
    }
	
	public String strHandler(String str,Function<String,String> mf){
		return mf.apply(str);
	}
   
   /**
   	 * 4.Predicate<T> 断言型接口
   	 **/  
   	@Test
   	public void test3(){
 		List<String> list = Arrays.asList("Hello","Lambda","ok","wwww");
 		List<String> strlist = filterStr(list,(s)-> s.length > 3);
 		for(String str : list){
         	System.out.println(str);
         }
    }
   	
   	// 需求 满足条件的字符串,放入到集合
   	public void filterStr(List<String> list,Predicate<String> pre){
		List<String> strList = new ArrayList<>();
		for(String str : list){
			if(pre.test(str)){
				strList.add(str);		
			}	
		}
		return strList;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值