In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >
Share
Shulou(Shulou.com)06/01 Report--
本篇内容介绍了"Java8中的lamdba表达式如何使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
import org.junit.jupiter.api.Test;import java.util.*;import java.util.function.Consumer;/* * 一、Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符 * 箭头操作符将 Lambda 表达式拆分成两部分: * * 左侧:Lambda 表达式的参数列表 * 右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体 * * 语法格式一:无参数,无返回值 * () -> System.out.println("Hello Lambda!"); * * 语法格式二:有一个参数,并且无返回值 * (x) -> System.out.println(x) * * 语法格式三:若只有一个参数,小括号可以省略不写 * x -> System.out.println(x) * * 语法格式四:有两个以上的参数,有返回值,并且 Lambda 体中有多条语句 * Comparator com = (x, y) -> { * System.out.println("函数式接口"); * return Integer.compare(x, y); * }; * * 语法格式五:若 Lambda 体中只有一条语句, return 和 大括号都可以省略不写 * Comparator com = (x, y) -> Integer.compare(x, y); * * 语法格式六:Lambda 表达式的参数列表的数据类型可以省略不写,因为JVM编译器通过上下文推断出,数据类型,即"类型推断" * (Integer x, Integer y) -> Integer.compare(x, y); * * 上联:左右遇一括号省 * 下联:左侧推断类型省 * 横批:能省则省 * * 二、Lambda 表达式需要"函数式接口"的支持 * 函数式接口:接口中只有一个抽象方法的接口,称为函数式接口。 可以使用注解 @FunctionalInterface 修饰 * 可以检查是否是函数式接口 */public class TestLambda {@Test public void test1(){ Runnable able=new Runnable() {@Override public void run() { System.out.println("Hello world"); } }; able.run(); System.out.println("--------------------------------"); // 用lamable实现 抽象方法实现 Runnable ables=() -> System.out.println("hello lamable"); ables.run(); }@Test public void test2(){//随便找几个java 包里面的接口测试 lamable //一个参数的时候也可以不加括号 Consumer consumer=x -> System.out.println(x); consumer.accept("联系"); Consumer consumer1=(x) -> System.out.println(x); consumer1.accept("联系1"); }@Test public void test3(){// 有两个以上的参数,有返回值,并且 Lambda 体中有多条语句 Comparator com=(x,y) ->{ System.out.println("有两个以上的参数,有返回值,并且 Lambda 体中有多条语句"); return Integer.compare(x, y); }; int a=com.compare(33, 99); System.out.println(a); }@Test public void test4(){// 有两个以上的参数,有返回值, Lambda 体中有一条语句 {}和return都可以省略 Comparator com=(x,y) -> Integer.compare(x, y); int b=com.compare(122, 2); System.out.println(b); }@Test public void test5(){// String[] strs;// strs = {"aaa", "bbb", "ccc"}; List list = new ArrayList(); // java 8 调用方法 类型推断 参数根据上下文获取 里面就可以不写类型 show(new HashMap()); }public void show(Map map){ }//需求:对一个数进行运算 @Test public void test6(){ Integer num = operation(100, (x) -> x * x); System.out.println(num); System.out.println(operation(200, (y) -> y + 200)); }public Integer operation(Integer num, MyFun mf){return mf.getValue(num); }}"Java8中的lamdba表达式如何使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.