




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第吊打Java面试官之Lambda表达式StreamAPI目录一、jdk8新特性简介二、Lambda表达式简单理解一下Lambda表达式Lambda表达式的使用三、函数式接口1.什么是函数式接口2.如何理解函数式接口3.Java内置四大核心函数式接口四、方法引用与构造器引用方法引用构造器引用和数组引用五、StreamAPI1.StreamAPI的说明2.为什么要使用StreamAPI3.创建Stream的四种方式4.Stream的中间操作及其测试5.Stream的终止操作及其测试六、Optional类的使用Optional类的重要意义:
一、jdk8新特性简介
二、Lambda表达式
简单理解一下Lambda表达式
publicclassLambdaTest{
@Test
publicvoidtest1(){
Runnabler1=newRunnable(){
@Override
publicvoidrun(){
System.out.println("我爱北京天安门");
r1.run();
System.out.println("******************************************");
Runnabler2=()-System.out.println("我爱北京故宫");
r2.run();
@Test
publicvoidtest2(){
ComparatorIntegercom1=newComparatorInteger(){
@Override
publicintcompare(Integero1,Integero2){
returnIpare(o1,o2);
intcompare1=pare(12,21);
System.out.println(compare1);
System.out.println("**********************************");
//Lambda表达式的写法
ComparatorIntegercom2=(o1,o2)-Ipare(o1,o2);
intcompare2=com2.compare(32,21);
System.out.println(compare2);
System.out.println("************************************");
//方法引用
ComparatorIntegercom3=Integer::compare;
intcompare3=pare(32,21);
System.out.println(compare2);
}
Lambda表达式的使用
1.举例:(o1,o2)-Ipare(o1,o2);
2.格式:
-:lambda操作符或箭头操作符
-:左边:lambda形参列表(其实就是接口中的抽象方法的形参列表)
-:右边:lambda体(其实就是重写的抽象方法的方法体)
3.Lambda表达式的使用:(分为6种情况介绍)
总结:(重点看这个)
-左边:lambda形参列表的参数类型可以省略(类型推断);如果lambda形参列表只有一个参数,其一对()也可以省略
-右边:lambda体应该使用一对{}包裹;如果lambda体只有一条执行语句(可能时return语句),可以省略这一对{}和return关键字
4.Lambda表达式的本质:作为函数式接口的实例
5.如果一个接口中,只声明了一个抽象方法,则此接口就称为函数式接口
publicclassLambdaTest1{
//语法格式一:无参,无返回值
@Test
publicvoidtest1(){
Runnabler1=newRunnable(){
@Override
publicvoidrun(){
System.out.println("我爱北京天安门");
r1.run();
System.out.println("******************************************");
Runnabler2=()-{
System.out.println("我爱北京故宫");
r2.run();
//语法格式二:Lambda需要一个参数,但是没有返回值。
@Test
publicvoidtest2(){
ConsumerStringcon=newConsumerString(){
@Override
publicvoidaccept(Strings){
System.out.println(s);
con.accept("谎言和誓言的区别什么?");
System.out.println("**********************************");
ConsumerStringcon1=(Strings)-{
System.out.println(s);
con1.accept("一个是听得人当真了,一个是说的人当真了");
//语法格式三:数据类型可以省略,因为可由编译器推断得出,称为"类型推断"
@Test
publicvoidtest3(){
ConsumerStringcon1=(Strings)-{
System.out.println(s);
con1.accept("一个是听的人当真了,一个是说的人当真了");
System.out.println("****************************");
ConsumerStringcon2=(s)-{
System.out.println(s);
con2.accept("一个是听的人当真了,一个是说的人当真了");
@Test
publicvoidtest4(){
ArrayListStringobjects=newArrayList();//类型推断(泛型)
int[]arr={1,2,3};//类型推断(int[]arr=newint[]{1,2,3};)
//语法格式四:Lambda若只需要一个参数时,参数的小括号可以省略
@Test
publicvoidtest5(){
ConsumerStringcon1=(s)-{
System.out.println(s);
con1.accept("一个是听的人当真了,一个是说的人当真了");
System.out.println("****************************");
ConsumerStringcon2=s-{
System.out.println(s);
con2.accept("一个是听的人当真了,一个是说的人当真了");
//语法格式五:Lambda需要两个或两个以上的参数,多条执行语句,并且可以有返回值
@Test
publicvoidtest6(){
ComparatorIntegercom1=newComparatorInteger(){
@Override
publicintcompare(Integero1,Integero2){
System.out.println(o1);
System.out.println(o2);
returnIpare(o1,o2);
System.out.println(pare(12,21));
System.out.println("*******************************");
ComparatorIntegercom2=(o1,o2)-{
System.out.println(o1);
System.out.println(o2);
returnpareTo(o2);
System.out.println(pare(12,6));
//语法格式六:当Lambda体只有一条语句时,return与大括号若有,都可以省略
@Test
publicvoidtest7(){
ComparatorIntegercom1=(o1,o2)-{
returnpareTo(o2);
System.out.println(pare(12,6));
System.out.println("******************************");
ComparatorIntegercom2=(o1,o2)-pareTo(o2);
System.out.println(pare(12,21));
@Test
publicvoidtest8(){
ConsumerStringcon1=s-{
System.out.println(s);
con1.accept("一个是听的人当真了,一个是说的人当真了");
System.out.println("*********************************");
ConsumerStringcon2=s-System.out.println(s);
con2.accept("一个是听的人当真了,一个是说的人当真了");
}
三、函数式接口
1.什么是函数式接口
2.如何理解函数式接口
总结:只有函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC TS 61400-50-4:2025 EN Wind energy generation systems - Part 50-4: Use of floating lidar systems for wind measurements
- 服装制版师模拟考试题(附参考答案)
- 土方运输分包协议
- 设计师职业生涯中常见的问题与解决方法试题及答案
- 浙江国企招聘2025湖州南浔新诚油品销售有限公司招聘2人笔试参考题库附带答案详解
- 2025重庆市设计院有限公司招聘29人笔试参考题库附带答案详解
- 2025福建移动春季校园招聘若干人笔试参考题库附带答案详解
- 2025湖北武汉市汉江水利水电(集团)有限责任公司招聘13人笔试参考题库附带答案详解
- 志愿者活动内容:点亮文明社区共筑和谐家园
- 设计表达技巧的2024年国际商业美术设计师考试试题及答案
- 当事人银行结算账户确认书模板
- 《糖尿病的预防》课件
- 导地线压接培训课件
- 酒店工伤预防知识培训课件
- 计算机网络故障的诊断与解决方法
- 全媒体运营师-国家职业标准(2023年版)
- 数字信号处理名校考研真题详解
- 中小学生心理健康诊断测验 MHT(附测试量表及评分细则)
- GLB-2防孤岛保护装置试验报告
- 职业生涯规划家庭教育课
- 月季整枝的修剪对策
评论
0/150
提交评论