网站首页 >>私服发布<< >>家族发布<< >>技术文章<< >>工具下载<< >>激情家族<<
 欢迎光临【情缘风云发布网】 本站每天每时更新所有即将开放的风云私服,以后找新开网游不必东奔西走,输入 WWW.224079.com 所有最新网游尽在眼底! 我们的QQ广告群:472164804
黑客日教程-对比集合的STREAM().FOREACH()和FOREACH()
文章作者:情缘 文章来源:情缘风云私服发布网,风云私服发布网,新开风云私服,风云私服网,风云sf,电信风云私服 更新时间:2019/7/7 18:47:38 
1.简介 在java中有多种方式对集合进行遍历。本教程中将看两个类似的方法 Collection.stream().forEach()和Collection.forEach()。 在大多数情况下,两者都会产生相同的结果,但是,我们会看到一些微妙的差异。 2.概述 首先,创建一个迭代列表: 最直接的方法是使用增强的for循环: 如果我们想使用函数式Java,我们也可以使用forEach()。我们可以直接在集合上这样做: 或者,我们可以在集合的流上调用forEach(): 两个版本都将迭代列表并打印所有元素: 在这个简单的例子中,我们使用的forEach()没有区别。 3.执行顺序 Collection.forEach()使用集合的迭代器(如果指定了一个),集合里元素的处理顺序是明确的。相反,Collection.stream().forEach()的处理顺序是不明确的。 在大多数情况下,我们选择上述两种方式的哪一种是没有区别的。但是有时候有。 3.1 Parallel Stream 并发流允许我们在多个线程中执行stream,在这种情况下,执行顺序也不明确的。Java只需要在调用任何最终操作(例如Collectors.toList())之前完成所有线程。 看一个例子,首先直接在集合上调用forEach(),然后在并发流上调用: 如果我们多次运行代码,我们会看到list.forEach()以插入顺序处理元素,而 list.parallelStream().forEach()在每次运行会产生不同的结果。 一个可能的输出是: 另一个是: 3.2 自定义迭代器 让我们使用自定义迭代器定义一个列表,以反向顺序迭代集合: 当我们遍历列表时,再次使用forEach()直接在集合上,然后在流上: 我们得到不同的结果: 结果不同的原因是在列表中使用的forEach()会使用自定义迭代器,而stream().forEach()只是从列表中逐个获取元素,会忽略迭代器。 4.修改集合 很多集合在遍历的时候,不应该在结构上被修改(比如ArrayList或HashSet)。如果在迭代期间删除或添加元素,会抛出ConcurrentModification异常。 此外,集合设计为快速失败(fail-fast),这意味着一旦修改就抛出异常。 类似地,当我们在stream的执行期间添加或删除元素时,我们将得到ConcurrentModification异常。但是,异常将在稍后抛出。 两个forEach()方法之间的另一个细微差别是Java明确允许使用迭代器修改元素。相反,stream不能。 来看一下更详细的例子。 4.1 删除元素 定义一个列表,删除最后一个元素(“D”): 遍历列表时,在打印第一个元素(“A”)后删除最后一个元素: 因为forEach()是快速失败的,所以我们停止迭代并在处理下一个元素之前看到异常: 让我们看看如果我们使用stream().forEach()会发生什么: 在这里,我们继续迭代整个列表,然后才看到异常: 但是,Java并不保证会抛出ConcurrentModificationException。这意味着我们永远不应该编写依赖于此异常的程序。 4.2 改变元素 我们可以在迭代列表时更改元素: 但是,虽然使用Collection.forEach()或stream()。forEach()执行此操作没有问题,但Java要求对流的操作是无干扰的。这意味着在执行流管道期间不应修改元素。 这背后的原因是流应该促进并行执行。在这里,修改流的元素可能会导致意外行为。 5.结论 在本文中,我们看到了一些示例,它们显示了Collection.forEach()和Collection.stream().forEach()之间的细微差别。 但是,重要的是要注意上面显示的所有示例仅仅是为了比较迭代集合的两种方式。 如果我们不需要流但只想迭代集合,则第一个选择应该直接在集合上使用forEach()。 GitHub上提供了本文中示例的源代码。
·上一篇;“黑客”用35美元电脑窃取NASA机密 他是如何做到的?
·下一篇;黑客利用三星免费固件程序骗钱,安装量超1000万
浏览次数:3
最新文章
· 日本娱乐圈大佬喜多川去世 曾培养木村拓哉...
· 害怕被攻击干脆禁掉了黑客教学视频...
· 《黑客帝国》中隐含的“奶头乐”现象,现在...
· “黑客”用35美元电脑窃取NASA机密 ...
· 分分合合娱乐圈,你还相信娱乐圈中的爱情吗...
· 半个娱乐圈的明星都来自爆 隐藏的也要揭开...
· 毕业后年薪30万起,人工智能风云私服这么...
· 马云500万拍板的超级黑客,14年前3分...
· 黑客日教程-对比集合的STREAM()....
· 黑客利用三星免费固件程序骗钱,安装量超1...
热门文章
· 风云SF架设教程...
· 中国人工智能风云热度减弱 融资交易数量大...
· 2019中国人工智能峰会圆满落幕...
· 编程纳入高考,人工智能时代,孩子要不要从...
· 对于人工智能风云,不妨先用起来...
· 从王宝强离婚风云到王菲演唱会,2016娱...
· 拿下张嘉译这个潜力股,她的风云身份很不简...
· 风云私服战士卡位技术心得...
· “黑客”用35美元电脑窃取NASA机密 ...
· 《黑客帝国》:划时代作品,袁和平把中国武...
· 黑客“撞库”热门应用盗密码赚百万,抖音配...
· 黑客利用三星免费固件程序骗钱,安装量超1...
· 黑客日教程-对比集合的STREAM()....
· 《向往的生活》何炅耐心配合,风云私服默默...
· 娱乐圈指风云私服趣事...
· 周末闲情风云私服人生...
· 好看的小说风云SF...
· 风云私服发布网上首页...
· 风云私服我要上百度...
· 不能说的秘密风云私服...
· 新开风云私服发布网...
· 你觉得风云私服能坚持多久...
· 一直等待风云私服的到来...
· 最新风云私服搞笑片...
· 蔡少芬和张晋:娱乐圈让人羡慕的风云私服模...
· 我要风云私服小说...
· 《热搜女王》讲述娱乐圈尔虞我诈风云私服...
· 小说风云私服走起...

商标、文字、形象及内容归 游戏导航 版权所有,任何组织或个人未经本站同意,不得使用和传播
拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活
本站所有游戏均来自网络版权归游戏业主所有,如果无意之中侵犯了您的版权,请来信告知,本站将在3个工作日内删除
*注释:本站发布所有游戏信息,均来自互联网,与本站无关。请玩家仔细辨认游戏信息的真实性,避免上当受骗
网站备案登记号:辽ICP备07010702号