没有合适的资源?快使用搜索试试~ 我知道了~
12-JAVA8新特性1
需积分: 0 0 下载量 151 浏览量
2022-08-03
16:04:43
上传
评论
收藏 78KB PDF 举报
温馨提示
试读
1页
1、集合调用stream方法,list,stream() 2、数组,Arrays.stream(arr) 4、无限迭代:Stream.iterate()、str
资源详情
资源评论
资源推荐
Java8新特性
Lambda表达式,新语法规则
函数式接口,简化代码
StreamAPI,对数据进行处理
Optional类,处理空指针
意义:一个接口的匿名实现类,可以极大程度的精简代码,只能用于接口
->箭头左边写()需要传入的参数,右边{ }写需要实现的功能
当参数只有一个时可以省略括号不写,当实现语句只有一条时可省略return和大括号
Runnable r = (o1,o2) ->System out println("这是比较方法");
Lambda实际是为匿名内部类而生的。
只包含一个抽象方法的接口,叫函数式接口,用注解:@FunctionalInterface 标注
Lambda依附于函数式接口得以存在,Lambda表达式就是一个函数式接口的实例。用匿
名实现类表示的都可以用Lambda表达式来写
四大核心函数式接口
其它延伸的函数式接口
Consumer类型,提供accept方法,接收一个对象,无返回值
Supplier类型,提供get方法,返回相应的对象
Function类型,提供apply方法,输入a,输出b,实现某种功能
Predicate类型,提供test方法,输入参数,返回Boolean,判断
方法引用
实际:当lambda表达式的形参列表返回值类型一致时,就可以使用方法引用来替换
对象::非静态方法
类::静态方法
类::非静态方法
()->System.out.println(" ")==System.out::println;
()->p.getName ==p::getName;
(t1,t2)->Integer.compare(t1,t2)==Integer::compare;
(s1,s2)->s1.compareTo(s2) ==String::compareTo;
构造器引用
()->new Person(); ==Person::new;
数组引用
(n)->new Integer[n]==Integer[]::new
引用
意义:专门对集合的数据进行操作的一个专门类。传入数据源创建Stream,Stream里
面有一系列的方法可以对数据进行处理操作。终止操作命令一下,立马执行处理。返
回处理之后的Stream,但是不会对数据源进行修改。
创建Stream
中间操作
中止操作
1、集合调用stream方法,list,stream()
2、数组,Arrays.stream(arr)
3、Stream类的方法:Stream.of(1,2,3,4,5)
4、无限迭代:Stream.iterate()、stream.generate()
筛选和切片
映射
排序
匹配与查找
归约
收集
意义:先写一个方法的框架,而当我需要具体实现某种方法时再传递具体的实现进
去,而我这个实现的过程又利用语法来精简,以此来更大程度的简化代码。但是Java
里面无处不对象,实际我们并不能直接传递方法,而是将方法封装成一个抽象方法的
接口类,而这里的lambda就是这个接口类的实例对象。这样就是实现了传递的目的
filter,按某种要求对数据进行过滤
distinct,去重
limit(n),使数据数量不超过
skip(n),扔掉前面n个元素
map(),相当于apply的操作
flatMap(),处理的数据单独为一家(流)
sorted
sorted(Comparator)
forEach(),迭代,相当于if循环遍历
AllMatch()、一类
min、max、count
reduce,累加成一个值
collect(Collectors.toList());灯,转换成其它流的操作
意义:类似于Integer对int的一个包装工作,这里也是把空指针包装成null显示,避
免空指针异常。
创建
方法
Optional.of(T t) : 创建一个 Optional 实例,传入需要包装的对象,T必须为非空
Optional.empty() : 创建一个空的 Optional 实例
Optional.ofNullable(T t):t可以为null
orElse(T other) :如果有值则将其返回,否则返回指定的other对象
傅融
- 粉丝: 26
- 资源: 333
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 演讲稿.txt
- 基于Python的爬虫案例-软科中国大学TOP200
- 碳排放权交易明细数据(2024年5月更新).xlsx
- 特殊文件属性命令chattr和lsattr
- HTML、CSS 和 JavaScript动态、交互式的网页 .txt
- b0cd8f9b23d4e5e381b6a8fd8ee0e907.JPG
- ff45d61c5900e45634cf4cac6cff61a1.JPG
- springboot.springboot.springboot.springboot.txt
- linux-进程与服务管理
- 毕业设计基于Django+MySQL+Redis实现简单的天气预报系统python源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0