怎么用记事本做钓鱼网站,广州网站制作开发公司哪家好,长春网站建设方案推广,html 路径 网站根路径一、介绍
1、简介
Java的Lambda表达式是Java 8引入的一个特性#xff0c;它支持函数式编程#xff0c;允许将函数作为方法的参数或返回值#xff0c;从而简化了匿名内部类的使用#xff0c;并提供了对并行编程的更好支持。
2、语法
Lambda表达式的使用前提是存在一…一、介绍
1、简介
Java的Lambda表达式是Java 8引入的一个特性它支持函数式编程允许将函数作为方法的参数或返回值从而简化了匿名内部类的使用并提供了对并行编程的更好支持。
2、语法
Lambda表达式的使用前提是存在一个接口该接口中有且只有一个抽象方法。在主方法中可以通过创建接口的匿名内部类或使用Lambda表达式来调用该接口的方法。
Lambda表达式的语法为(parameter_list) - {function_body}其中-将参数和实现逻辑分离()中的部分是需要传入Lambda体中的参数{}中的部分接收来自()中的参数并完成一定的功能。
3、优点
Lambda表达式的主要优势包括
简化匿名内部类的使用使代码更加简洁明了。支持函数式编程允许函数作为第一类对象进行传递和操作。促进并行编程因为函数式编程中的纯函数天然具备无副作用的特性使得在并行编程中更容易实现可靠的多线程和并行处理。
4、用途
Lambda表达式主要用于函数式接口即只包含一个抽象方法的接口可以使用FunctionalInterface注解进行标识。常用场景有
创建Runnable实例Runnable runnable () - {System.out.println(Hello, Lambda!);};实现Consumer接口numbers.forEach(n - System.out.println(n));实现Predicate接口filteredNames names.stream().filter(name - name.length() 5).collect(Collectors.toList());创建线程new Thread(() - System.out.println(haha)).start();
二、使用场景
1、集合遍历 ListString stringList Arrays.asList(apppe,organge,banana);// 原来的方式for (String s : stringList) {System.out.println(s);}// lambda 表达式stringList.forEach(s-{System.out.println(s);});
2、排序
注意-1代表第一个对象1代表第二个对象 ListDog dogs Arrays.asList(new Dog[]{new Dog(n1, 12),new Dog(n2, 14),new Dog(n3, 11)});// 方法1Collections.sort(dogs, new ComparatorDog() {Overridepublic int compare(Dog o1, Dog o2) {return o1.getAge()o2.getAge()?-1:1;}});// 方法2Collections.sort(dogs,(o1,o2)-(o1.getAge()o2.getAge()?-1:1));dogs.forEach(s-{System.out.println(s.getAge());});
3、过滤 ListString stringList Arrays.asList(apple,organge,banana);// 获取集合中所有以“a”开头的字符串// 原来的方式ListString newList new ArrayListString();for (String s : stringList) {if(s.startsWith(a)){newList.add(s);}}// lambda表达式ListString newList2 stringList.stream().filter(s - {if(s.startsWith(a)){return true;}return false;}).collect(Collectors.toList());
4、映射 ListString stringList Arrays.asList(apple,organge,banana);// 获取集合中所有字符串的长度// 原来的方式ListInteger newList new ArrayListInteger();for (String s : stringList) {newList.add(s.length());}// lambda表达式ListInteger newList2 stringList.stream().map(s - {return s.length();}).collect(Collectors.toList());// lambda 表达式newList2.forEach(s-{System.out.println(s);});
5、规约