技术原理

关于Java中的流,您需要知道的一切

Java 8中的一个新的附加包,称为java.util.stream为用户添加了一个高效的编程体验。流可以定义为对象序列,支持多种方法。在本文中,我们将探讨Java中的流

本文将介绍以下指针,

在流上生成流操作过滤迭代

在本文开始讨论Java中的流之前,让我们看看一些重要的特性,

在Java中的流:特性流不是数据结构,不存储元素。集合、数组或I/O通道是从中获取输入的位置。流的源在对其执行操作后保持不变。例如,过滤一个流只会生成一个没有过滤元素的新流,而不是修改原始流。流支持诸如filter、reduce、match、find等聚合操作。懒惰可以被看作是流的一个特性,因为它只在需要时评估代码。在流的生命周期中,只能访问流中存在的元素一次。必须创建一个新流以重新访问源中存在的相同元素。”在Java

生成流

流中继续本文的内容可以通过以下方法生成:

流()-返回一个序列流。集合被视为源。parallel stream()–返回并行流。集合被视为源。List字符串=数组.asList(“你好”,“你好”,“你好”,“你好”,“你好”,“你好”,“,”纳马斯特“);列表已筛选=字符串.stream().筛选(字符串->!字符串.isEmpty(二)收藏(收藏家.toList());

在Java中继续本文的流操作

流操作:中间操作:

映射

集合中的元素可以根据作为参数传递的谓词映射到其他对象。下面的示例使用map方法显示数字的唯一平方。

列表平方=数字流().map(y->y*y).distinct().collect(收藏家.toList());

筛选器

元素可以使用此方法根据条件移除。

列表名称=数组.asList(“星期六”、“星期日”、“星期四”);

已排序

使用此方法可以对流进行排序。

列表名称=数组.asList(“星期六”、“星期日”、“星期四”);Java中的流:终端操作:

collect

可以使用collect操作组合流元素的处理结果。

列表编号=数组.asList(4,3,2,5,6);

forEach

此方法用于遍历流中的每个元素。

列表编号=数组.asList(4,3,2,5);

reduce

使用此方法可以将流的元素还原为单个值。

整数偶数=数字流(1)过滤(x->x%2==0),减少(0,(res,i)—>res i);

变量res最初被赋值为0,我被添加到其中。

在Java

过滤

中继续本文的流上部分使用流方法过滤代码。在下面的例子中,工具的价格被过滤掉。

进口java.util语言.*;类工具{字符串名称;浮动价格;这个.num=数字;这个价格=价格;}公共课考试{ListinstrumentsList=new ArrayList();工具列表添加(新乐器(1,“吉他”,15000f));工具列表添加(新乐器(3,“长笛”,15000f));工具列表添加(新仪器(4个,“鼓”,48000f));列表仪器价格列表2=仪表列表流().map(p->p.price)//取价系统输出打印(仪器价格表2);}输出:

[48000.0,32000.0]

继续本文中的Java流

迭代:

迭代可以通过使用Java流来执行。

公共课考试{公共静态void main(字符串[]参数){.filter(元素->元素%4==0).限制(6).forEach公司(系统输出·印刷品);}进口java.util语言.*;公共课考试{{列表num=数组.asList(6、7、8、9);//使用映射方法收集(收藏家.toList());//创建字符串列表列表天=//过滤法收集(收藏家.toList());系统输出打印(res);List显示=系统输出打印(显示);//创建整数列表列表数字=数组.asList(6,9,5,7,1);//collect方法返回一个集合数字流(二)地图(y->y*y).collect(收集器.toSet());系统输出打印(平方米);数字流(一)地图(y->y*y).forEach(x->系统输出打印(x) );//还原法数字流(1)过滤(x->x%2==0),减少(0,(结果,i)—>结果 i);系统输出打印(偶数);}

输出:

[36,49,64,81]

[周六,周日]

[周五,周六,周日]

[81,49,1,36,25]

36

49

64

81

14

流使用户能够有效地对元素执行操作。

因此我们关于“Java中的流”的文章到此结束。如果您想了解更多,请查看由Edureka提供的Java培训,Edureka是一家值得信赖的在线学习公司。Edureka的Java J2EE和SOA培训和认证课程旨在为您提供核心和高级Java概念以及各种Java框架(如Hibernate和Spring)的培训。

有问题吗?请在本博客的评论部分提及,我们会尽快给您回复

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能培训3到猎维科技 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录