栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java stream

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java stream

java stream

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。stream将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。

+--------------------+       +------+   +------+   +---+   +-------+
| stream of elements +-----> |filter+-> |sorted+-> |map+-> |collect|
+--------------------+       +------+   +------+   +---+   +-------+
生成流
 //直接生成
 Stream stream = Stream.of(1,2,3,4);
 // 使用Arrays.stream
 int intArray[]={1,2,3,4};
 IntStream intStream =Arrays.stream(intArray);
 // 使用Collections
 List list = Arrays.asList(a);
 stream = list.stream();

其中IntStream是Stream的包装类型,也可以使用Stream< Integer >,同理还有LongStream、DoubleStream。

流操作

生成流之后就可以对流进行操作。

filter

filter 方法用于通过设置的条件过滤出元素。以下代码片段使用 filter 方法过滤掉1:

int a[]={7,1,8};
//count的返回值的long类型,因此要加一个强制类型转换(int)
//计算a中不为1的个数
int res=(int)Arrays.stream(a).filter(x -> x!=1).count();
System.out.println(res);

输出为2

map

map 方法用于映射每个元素到对应的结果,以下代码片段使用 map 输出了元素对应的平方数:

List numbers = Arrays.asList(7,7,1,8);
List res= numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());

distinct()的作用是去除重复值,因此res的值为[49,1,64]

sorted

sorted 方法用于对流进行排序。

List numbers = Arrays.asList(7,7,1,8);
List res= numbers.stream().map( i -> i*i).distinct().sorted().collect(Collectors.toList());

res的值为[1,49,64]

更多示例参看菜鸟教程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号