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表达式的类型检查过程
  • 相关阅读:
    任意用户密码重置的10种姿势
    提取header头进行模块化处理
    web安全测试--XSS(跨站脚本)与CSRF
    web测试--登录界面怎么测?
    Burp Suite抓https数据包
    CTFHub_技能树_远程代码执行
    CTFHub_技能树_SQL注入Ⅱ
    XSS 跨站脚本
    C语言中的内存对齐问题
    CTFHub_技能树_SQL注入Ⅰ
  • 原文地址:https://www.cnblogs.com/fly-book/p/12637575.html
Copyright © 2011-2022 走看看