zoukankan      html  css  js  c++  java
  • 使用函数式接口

    Predicate

    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.function.Predicate;
    
    /**
     * @see Predicate
     * @FunctionalInterface
     * public interface Predicate<T> {
     *      boolean test(T t);
     *      //....
     * }
     */
    public class Filter {
        public static <T>List<T> filter(List<T> list, Predicate<T> p){
            List<T> res = new ArrayList<>();
            for (T t : list) {
                if (p.test(t)){
                    res.add(t);
                }
            }
            return res;
        }
        public static void main(String[] args){
            List<Integer> list = filter(Arrays.asList(1,2,3,4,5),(Integer l)->l%2==0);
            System.out.println(list);
        }
    }
    
    

    Consumer

    import java.util.Arrays;
    import java.util.List;
    import java.util.function.Consumer;
    
    /**
     * @see Consumer
     * @FunctionalInterface
     * public interface Consumer<T> {
     *      void accept(T t);
     *      //....
     * }
     */
    public class ForEach {
        public static <T> void forEach(List<T> list,Consumer<T> c){
            for (T t : list) {
                c.accept(t);
            }
        }
        public static void main(String[] args){
            forEach(Arrays.asList(1,2,3,4,5),(Integer i)-> System.out.println(i));
        }
    }
    

    Function

    
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.function.Function;
    
    /**
     * @see java.util.function.Function
     * @FunctionalInterface
     * public interface Function<T, R> {
     *      R apply(T t);
     *      //...
     * }
     */
    public class Map {
        public static <T,R> List<R> map(List<T> list, Function<T,R> f){
            List<R> result = new ArrayList<>();
            for(T s: list){
                result.add(f.apply(s));
            }
            return result;
        }
        public static void main(String[] args){
            List<Integer> l = map(Arrays.asList("lambdas","in","action"),(String s)->s.length());
            System.out.println(l);
        }
    }
    
    ## Lambda表达式的类型检查过程
  • 相关阅读:
    软件工程课件
    团队博客作业Week1
    IntelliJ IDEA下Git的配置与使用(命令行下)
    Java语言程序设计课程学期总结
    JDBC访问数据库的一些小技巧
    Conference-Web Search and Data Mining
    线程停止与volatile
    班会-2016-2017第2学期
    Java第11次实验(JDBC数据库编程)
    Python-Jupyter Notebook使用技巧
  • 原文地址:https://www.cnblogs.com/fly-book/p/12637575.html
Copyright © 2011-2022 走看看