Java内置的四大函数式接口(四)

Java中有四个内置的函数型的接口,每个接口都有一个方法,下面用lambda表达式进行实现相应的例子;

Consumer消费型接口

//Consumer消费型接口
	public void happy(double money, Consumer<Double> con) {
    
    
		con.accept(money);
	}

	@Test
	public void t1(){
    
    
		happy(1000, (m) -> System.out.println("消费了" + m + "元"));
	}

输出结果:消费了1000.0元
消费型接口中只有一个方法accept(),现在用lambda表达式进行实现。

Supplier供给型接口

//Supplier消费型接口
	public List<Integer> getNumList(int num, Supplier<Integer> sup){
    
    
		List<Integer> list = new ArrayList<Integer>();	
		for(int i = 0; i < num; i++) {
    
    
			Integer n = sup.get();
			list.add(n);
		}	
		return list;	
	}
	
	@Test
	public void t2(){
    
    
		List<Integer> iList = getNumList(10, () -> (int)(Math.random() * 100));
		for(Integer x: iList)
		System.out.println(x);
	}

结果输出十个随机数

Function函数型接口

	//Function函数型接口,对字符串进行处理
	public String back_str(String str, Function<String, String> fun){
    
    		
		return fun.apply(str);		
	}
	
	@Test
	public void t3(){
    
    
	     String new_str = back_str("hello lambda", (str) -> str.trim());
	     System.out.println(new_str);	
	}

结果:对字符串进行处理

Predicate断言型接口

//Predicate断言型接口
	public List<String> filter_str(List<String> list, Predicate<String> pre){
    
    
		List<String> str_list = new ArrayList<>();
		
		for(String str : str_list) {
    
    
			if(pre.test(str)) {
    
    
				str_list.add(str);
			}
		}
		return str_list;	
	}
	
	@Test
	public void t4(){
    
    
		List<String> strList = Arrays.asList("he", "hello", "lambda", "hell");
		List<String> str_back= filter_str(strList, (s) -> s.length() > 1);
		for(String str : str_back) {
    
    
			System.out.println(str);
		}	
	}	

结果返回字符串的长度
根据以上例子,了解lambda表达式的基本操作。

猜你喜欢

转载自blog.csdn.net/qq_41857955/article/details/105848471
今日推荐