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;
}
}
学而不思则罔,思而不学则殆。