String流

发布时间 2023-10-17 15:16:24作者: y_d_g

lambda表达式

定义:不管是什么对象,lambda表达式主要关注的是对数据进行了什么操作。

1.是一个匿名类并且只有一个抽象接口。(笔记)

基本格式
(参数列表)->{ 代码 }

例子:
new Thread(new Runnable(){
@Override
public void run(){
system。outprintln("新线程中run 方法被执行了")
}
})

lambda表达式
new Thread(() ->{ system。outprintln("新线程中run 方法被执行了") )

*********************************************************************************************************
Stream流
@EqualsAndHashCode //用于后期的去重使用
创建流
1 单列集合:集合对象.stream()
2 数组: arrays.stream(arr) 或者 stream.of(arr)
3 双列集合:转成单列集合后再创建 map.entrySet.stream()
map<String,Integer> map = new HashMap)<>();
map.put("黑子"."17")
map.put("桃子"."17")
map.put("黑子"."17")
map.entrySet.stream()

中间流
.distinct //去重
.filter() //设置条件,满足条件就留下

.map //把流中的元素进行计算或者转换 。相当于可以直接取到 一级数据
.flatmap flatMap可以把一个对象转成多个对象作为流中的元素 。相当于可以直接取到 二级数据
.limit (2) 设置流的最大长度,超出的部分将被抛弃
.skip(3) 跳过流中的前N个元素,返回剩下的元素
.sorted( new Comparator 方法) 1-3 解释:1到3 //排序
.concat(list1,list2) //俩个list合并

终结流
.forEach 对流中的元素进行遍历进行具体操作
.collect(Collectors.toList) 把当前流转成 另一个集合

.count 获取流中的元素个数
.max( new Comparator) 最大值
.Min ( new Comparator) 最小值

例子1
.collect(Collectors.toMap) 把当前流转,另一个map
//获取一个map集合,map的key为作者名,value为List<Book>
List<Author>authors = getAuthors()

authors.stream
key value
.collect(Collectors.toMap(new Function<Autor,String>(){ return author.getName }, new Function<Autor,List<Book>>(){return author.getBooss} ))


例子2
map<String,Integer> map = new HashMap)<>();
map.put("黑子"."17")
map.put("桃子"."17")
map.put("黑子"."17")
map.entrySet.stream()
key value
.collect(Collectors.toMap(new Function<entrySet,String>(){ return entrySet.getKey }, new Function<entrySet,String >(){return entrySet.getValue} ))

 


查找与匹配
anyMatch 任何一个元素满足条件 就为true
allMatch 全部元素满足条件 就为true
noneMatch 全部元素的不满足条件 就为true
findFirsh() 获取流中第一个元素

笔记:
1.如果没有终结操作,没有中间操作是不会得到执行的
2,流是一次性的,一个终结操作后,这个流就不能再被使用了。

*********************************************************************************************************

optional 操作
定义:optional好像一个包装类 把我们具体数据封装成optional对象内部,可以非常优雅的避免空指针异常


list<Author> =getAuthor()
optional<Author> authorOptional = optional.ofNullable(author):

.ofNullable 静态方法ofNullable来把数据封装成一个Optional对象。
ifPresent 来消费其中的值 authorOptional.ifPresent(author -> system.out.printIn(author.getName))