Java8新特性-Stream
程序员文章站
2022-06-15 17:21:02
...
- 1.8版本新加的stream api,java.util.stream.xx 相关包。
- 以一种声明的方式处理数据。(更简洁,优雅,性能)
- 例子(常用方法)
生成流
在 Java 8 中, 集合接口有两个方法来生成流:
- stream() − 为集合创建串行流。
- parallelStream() − 为集合创建并行流。
public static void main(String[] args) {
List list1 = Arrays.asList("Lambda1", "Lambda2", "Lambda3");
Stream Stream1= list1.stream();
Stream Streamparallel= list1.parallelStream();
// System.out.println(Stream1.count());
}
forEach
Stream 提供了新的方法 ‘forEach’ 来迭代流中的每个数据。
map
map 方法用于映射每个元素到对应的结果(可以批量转大小写,做计算等。。。)
(1)全部转大写。
(2) 集合每个元素后都加字符串“tangtang”。
filter
filter 方法用于通过设置的条件过滤出元素。使用 filter 方法过滤出集合中等于Lambda1字符串的个数:
limit
limit 方法用于获取指定数量的流。 以下代码片段使用 limit 方法打印出 1 条数据:
sorted
sorted 方法用于对流进行排序。
Collectors
Collectors 类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串:
统计
另外,一些产生统计结果的收集器也非常有用。它们主要用于int、double、long等基本类型上,它们可以用来产生类似如下的统计结果。
只是常用函数,根据具体业务自行扩展。
Redis 5.0 也有相应Stream概念。详情请移步Redis系列。