Lambda表达式
1.Lambda表达式的本质:作为函数式接口的实例
2.格式:
->:Lambda操作符 或 箭头操作符
->左边:Lambda形参列表(接口中抽象方法的形参列表)
->右边:Lambda体(重写的抽象方法的方法体)
3.Lambda表达式的使用:
->左边:Lambda形参列表的参数类型可以省略:如果Lambda形参列表只有1个参数,其一对()也可以省略。
->右边:Lambda体使用一对{}包裹,如果Lambda体只有一条执行语句(可能时return语句),可以省略{}及return关键字
函数式接口(只有一个抽象方法的接口)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | public class LambdaTest { @Test public void test() { MyInterface mi = new MyInterface() { @Override public String method(String arg) { return arg; } }; String str = mi.method( "java学习中。" ); System.out.println(str); //lambda表达式的方式 MyInterface mi2 = s -> s; String str2 = mi2.method( "java学习中。" ); System.out.println(str2); } @Test public void test2() { List<String> list = Arrays.asList( "a" , "bb" , "ccc" , "dddd" ); List<String> list1 = filterString(list, new Predicate<String>() { @Override public boolean test(String s) { return s.length() > 2 ; } }); System.out.println(list1); //[ccc, dddd] //lambda表达式的方式 List<String> list2 = filterString(list, s -> s.length() > 2 ); System.out.println(list2); } public List<String> filterString(List<String> list, Predicate<String> pre) { List<String> list1 = new ArrayList<>(); for (String s : list) { if (pre.test(s)) { list1.add(s); } } return list1; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律