一篇文章让你彻底掌握Lambda表达式的使用
下文笔者将详细讲解Lambda表达式的使用简介说明,如下所示
Lambda表达式的简介
Lambda表达式: Java SE8中的新特性 lambda表达式允许使用表达式来代替功能接口 lambda表达式: 可以理解为一个匿名方法,他可正常接收参数信息和返回相应值
Lambda表达式的功效
使用Lambda表达式可以 让我们采用使用更简短的代码,编写一些程序
Lambda表达式语法
基本语法: (parameters) -> expression 或 (parameters) ->{ statements; }lambda表达式示例分享
// 1.不需要参数,返回值为88 () -> 88 // 2.接收一个参数(数字类型),返回其3倍的值 x -> 3 * x // 3.接受2个参数(数字) //并返回他们的差值 (x, y) -> x – y // 4.接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5.接受一个string对象 //控制台打印输出 (String s) -> System.out.print(s)
Lambda改写原循环代码
String[] arrs = {"a", "b","c","d"}; list<String> list = Arrays.asList(arrs); // 以前的循环方式 for (String l: list) { System.out.print(l + "; "); } // 使用 lambda 表达式以及函数操作(functional operation) list.forEach((l) -> System.out.print(l + "; ")); // 在 Java 8 中使用双冒号操作符(double colon operator) list.forEach(System.out::println);
匿名内部类的使用Lambda改写
// 使用匿名内部类 btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("匿名函数!"); } }); // 或者使用 lambda expression btn.setOnAction(event -> System.out.println("Hello World!"));
lambdas来实现Runnable接口示例
//使用匿名内部类 new Thread(new Runnable() { @Override public void run() { System.out.println("线程打印信息!"); } }).start(); //使用lambda expression new Thread(() -> System.out.println("线程打印信息!")).start(); //使用匿名内部类 Runnable r1 = new Runnable() { @Override public void run() { System.out.println("线程打印信息!"); } }; //使用 lambda expression Runnable r2 = () -> System.out.println("线程打印信息!");
使用Lambdas排序集合
String[] arrs = {"a", "b","c","d"}; //使用匿名内部类根据 name 排序 players Arrays.sort(arrs, new Comparator<String>() { @Override public int compare(String s1, String s2) { return (s1.compareTo(s2)); } }); //使用lambdas Comparator<String> sortByName = (String s1, String s2) -> (s1.compareTo(s2)); Arrays.sort(arrs, sortByName); Arrays.sort(arrs, (String s1, String s2) -> (s1.compareTo(s2))); //使用 lambda expression 排序,根据最后一个字母 Comparator<String> sortByLastLetter = (String s1, String s2) -> (s1.charAt(s1.length() - 1) - s2.charAt(s2.length() - 1)); Arrays.sort(arrs, sortByLastLetter); Arrays.sort(arrs, (String s1, String s2) -> (s1.charAt(s1.length() - 1) - s2.charAt(s2.length() - 1)));
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。