diff --git a/src/main/java/com/zeekling/function/FunctionTest.java b/src/main/java/com/zeekling/function/FunctionTest.java new file mode 100644 index 0000000..58ac218 --- /dev/null +++ b/src/main/java/com/zeekling/function/FunctionTest.java @@ -0,0 +1,37 @@ +package com.zeekling.function; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @author zeekling + * @apiNote 函数式编程 + * @since 2021-07-04 + */ +public class FunctionTest { + + public static List filter(List list, Predicate p) { + List results = new ArrayList<>(); + for(T s: list){ + if(p.test(s)){ + results.add(s); + } + } + return results; + } + + + public static void main(String[] args) { + List listOfStrings = new ArrayList(){{ + add(""); + add("1"); + add("2"); + }}; + Predicate nonEmptyStringPredicate = (String s) -> !s.isEmpty(); + List nonEmpty = filter(listOfStrings, nonEmptyStringPredicate); + System.out.println(Arrays.toString(nonEmpty.toArray())); + + } + +} diff --git a/src/main/java/com/zeekling/function/Predicate.java b/src/main/java/com/zeekling/function/Predicate.java new file mode 100644 index 0000000..ce716fe --- /dev/null +++ b/src/main/java/com/zeekling/function/Predicate.java @@ -0,0 +1,18 @@ +package com.zeekling.function; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author zeekling + * @apiNote 函数式编程测试 + * @since 2021-07-04 + */ +@FunctionalInterface +public interface Predicate { + + boolean test(T t); + + + +}