java 函式式介面
阿新 • • 發佈:2021-11-11
/**
* 消費型介面 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;
}
}
學而不思則罔,思而不學則殆。