/*Java8内置的四大核心函数式接口

package com.greatest.Java8;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

import org.junit.Test;

public class TestLambda {
    /*Java8内置的四大核心函数式接口 
	   Consumer<T>:消费型接口
	      void  accept(T t);
     * Supplier<T>:供给型接口
     * T get()
     * Function<T,R> 函数型接口
     *    R   apply(T t)
     * Predicate<T>:断言型接口
     *   boolean  test(T  t)
     * */
	//predicate<T>  断言型接口
	//需求将满足条件的字符串放入集合中、
	public List<String > 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;
	}
	@Test
	public void  Test(){
		List<String > list=Arrays.asList("Hello","what","String","Greatest","ok","ojbk");
		List<String> strList=filterStr(list, (s)->s.length()>2);
		   for(String str:strList){
			   System.out.println(str);
		   }
	}
	//Function<T,R> 函数型接口
	//需求用于处理字符串
	public  String  strHandler(String str,Function<String,String> fun){
		return fun.apply(str);
	}
	
	
	@Test
	public  void  Test2(){
		String newStr=strHandler("\t\t\t\t   格瑞斯    ",(str)->str.trim());
		System.out.println(newStr);
		String newStr1=strHandler("abcdefghijklmnopqrstuvwxyz    ",(str)->str.toUpperCase());
		System.out.println(newStr1);
		String newStr2=strHandler("\t\t\t\t  格瑞斯    ",(str)->str.substring(6,10));
		System.out.println(newStr2);
	}
	//Supplier<T>  供给型接口
	//需求 :产生⑩个随机数  放入集合中
	public List<Integer> getNumber(int  num,Supplier<Integer> sup){
		List<Integer> list=new ArrayList<>();
		for(int i=0;i<num;i++){
			Integer  n=sup.get();
			list.add(n);
		}
		return list;
	}
	@Test
	public  void  test3(){   //100以内的十个数
		List<Integer>  numList=getNumber(10, ()->(int)(Math.random() * 100));
		for(Integer num:numList){
			System.out.println(num);
		}
	}
	//Consumer<T>消费性接口
	@Test
	public  void  Test4(){
		happy(10000,(m)->System.out.println("您已消费:"+m+"元"));
	}
	public  void  happy(double money,Consumer<Double> con){
		con.accept(money);
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_42676998/article/details/83350745
今日推荐