以过滤器filter为例,过滤大于5的数据项
1、定义一个函数式接口
private interface FilterApi<T>{
boolean isAllow(T t);
}
2、定义过滤函数
public static <T> List<T> filter(List<T> list,FilterApi api){
List<T> newList=new ArrayList<>();
for(T t:list){
if(api.isAllow(t))newList.add(t);
}
return newList;
}
3、使用
public class Filter {
private interface FilterApi<T>{
boolean isAllow(T t);
}
public static <T> List<T> filter(List<T> list,FilterApi api){
List<T> newList=new ArrayList<>();
for(T t:list){
if(api.isAllow(t))newList.add(t);
}
return newList;
}
public static void main(String[] args) {
//数据准备
Integer[] arr={1,2,3,4,5,6,7,8,9};
List<Integer> list= Arrays.asList(arr);
//调用
List<Integer> newList=Filter.filter(list,e->{
return (int)e>5;
});
//结果
System.out.println(Arrays.toString(newList.toArray()));
}
}