java 函数式接口

/**
* 消费型接口 Consumer<T> void accept(T t)
* 供给型接口 Supplier<T> T get()
* 函数型接口 Function<T,R> R apply(T t)
* 断定型接口 predicate<T> boolean test(T t)
*/

class LambdaText {
public static void main(String[] args) {
LambdaText l = new LambdaText();

//正常写法 acceptTest(值1,对象2) 需要new 对象
/* l.acceptTest("我要测试Lambda", new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}});*/

//方法二
// l.acceptTest("测试Lambda 方法2",s-> System.out.println(s));
int[] i = {1, 2, 5, 3, 6, 8, 7, 4};
/* ArrayList<Integer> integers = l.filterArr(i, new Predicate<Integer>() {
@Override
public boolean test(Integer integer) {
if (integer > 5) {
return true;}
return false;}
});*/

//filterArr Lambda
ArrayList<Integer> integers = l.filterArr(i, value -> {
if (value > 4) {
return true;
}
return false;
});
System.out.println(integers);
}

public void acceptTest(String s, Consumer<String> c) {
c.accept(s);
}

public ArrayList<Integer> filterArr(int[] ints, Predicate<Integer> pre) {
ArrayList<Integer> a = new ArrayList<>();
for (int i = 0; i < ints.length; i++) {
if (pre.test(ints[i])) {
a.add(ints[i]);
}
}
return a;
}
}


 
posted @ 2021-11-11 17:04  Leduo  阅读(37)  评论(0编辑  收藏  举报