Java20 Stream流
先看样例:
使用:
API分为两类:
获取Stream流
如果是map,那么就可以转成keySet和EntrySet再用.
零散数据需要是同种数据类型.
使用方式:
当然可以lamada表达式,就不多写了.

arr:
也可以这样:
但是,有一个细节:
也就是说这里是不会自动装箱拆箱的.为什么?
对于基本数据类型数组,Stream的of方法不会自动装箱。
这是因为Stream API 设计时,对于基本数据类型有专门的IntStream、LongStream、DoubleStream等特化流来处理。
如果使用Stream.of方法传入基本数据类型数组,它会将整个数组视为一个元素,而不是将数组中的每个元素作为独立的元素放入流中。
filter:
也可以这样:
如果不使用链式编程:

那么Stream3那里会报错.Stream2正常
为了提高阅读性,需要这样:

limit:参数就是过滤几个的意思.
distinct去重的时候,如果传的是自定义类型,一定要实现hashCode和equals concat:要保证ab中的元素一致.否则,得到的是两者共同父类的流.
map方法:

count方法就是返回流里面有多少个函数.

如果要指定放置的类型:

collect:
collectors的toList是静态方法,返回一个创建后的list
这样实际上会保证去重的.(注:这里默认是hashMap)
规则:
lamada:
