package com.lm;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
import java.util.function.Predicate;
/**
*
* Consumer<T> :消费型接口
* void accept(T t) :
*
* Supplier <T> : 供给型接口
* T get();
*
* Function<T,R> :函数型接口
* R apply(T t);
*
* Predicate<T> : 断言型接口
* boolean test(T t)
*
*/
public class TestLambda13 {
@Test
public void test1() {
List<String> list = Arrays.asList("Hello","aaa","bbbb","cccc");
List<String> newList = filterStr(list,(s)-> s.length() >3);
for (String s : newList) {
System.out.println(s);
}
}
//需求: 用于处理字符串,将满足字符串放入集合中
//Predicate<T> : 断言型接口 用于判断
public List<String> filterStr(List<String> list, Predicate<String> pre){
List<String> strList = new ArrayList<>();
for (String s : list) {
if(pre.test(s)){ //至于具体什么过滤条件,使用时再指定,比如字符串长度大于3的
strList.add(s);
}
}
return strList;
}
}