zoukankan      html  css  js  c++  java
  • lambda表达式的简单使用

    使用 java.util.function.Predicate 函数式接口以及 lambda 表达式,可以向 API 方法添加逻辑。用更少的代码支持更多动态行为。
    下面的例子用Predicate接口做的过滤。
    package com.mytest;
    import java.util.Arrays;
    import java.util.List;
    import java.util.function.Predicate;
    
    public class LambdaTest {
    
        public static void main(String[] args) {
            List<String> strings = Arrays.asList("java","javaqwer","jsdfava", "merry", "tomorrow", "day");
    
            System.out.println("which start with j:");
    
            filter2(strings, (lan) -> lan.startsWith("j"));
            filter(strings, (str) -> str.startsWith("J"));
            System.out.println("Languages which ends with a ");
            filter(strings, (str) -> str.endsWith("a"));
    
            System.out.println("Languages which length>5");
            filter(strings, (str) -> str.length() > 5);
    
            System.out.println("Languages which contains a");
            filter(strings, (str) -> str.contains("a"));
    
    
            System.out.println("==========逻辑函数合并使用==========");
            //逻辑函数合并使用
            strings.stream().filter(startsWithJ.and(lengthOverFour)).forEach(str-> System.out.println(str));
    
        }
    
      //常规方式
    private static void filter(List<String> strings, Predicate<String> condition) { for (String string : strings) { if (condition.test(string)) { System.out.println(string); } } }   
      //filter方法的改进版本
    private static void filter2(List<String> strings, Predicate<String> condition) { strings.stream().filter(str -> (condition.test(str))).forEach(str -> System.out.println(str)); }      //Predicate允许多个合成一个,它提供了逻辑操作 and,or等方法,把这些拼接起来传入filter()方法中。如主函数方法中的最后一行代码 static Predicate<String> startsWithJ = (n) -> n.startsWith("j"); static Predicate<String> lengthOverFour = (n) -> n.length() > 4; }
  • 相关阅读:
    近期工作中应用Python的一些经验总结
    自测是保证开发提交代码质量的最基本方法和最低要求
    Python,如何将元组中的元素作为参数传入函数
    与医院RIS进行数据对接时的方式
    HIS-门急诊模块之系统集成工作摘要
    AngularJS基础知识
    MySQL服务启动报错
    Pre-architecture读书笔记
    第八周进度总结
    Python学习(七)文件操作
  • 原文地址:https://www.cnblogs.com/dayu007/p/12228676.html
Copyright © 2011-2022 走看看