首先,它们的功能都是遍历数组每个元素并执行入参的accept()方法,但是它们的实现方式却不一样,在一些特定的情况下,执行会出现不同的结果。
在大多数情况下,两者都会产生相同的结果,但是,我们会看到一些微妙的差异。
首先,创建一个迭代列表:
list<string> list = arrays.aslist("a","b","c","d");
最直接的方法是使用增强的for循环:
for(string s : list"){ //something}
如果我们想使用函数式java,我们也可以使用foreach()。我们可以直dhc橄榄滋养套装接在集合上这样做:
consumer<string&g矢志t; consumer = s -> {system.out::println};list.foreach(consumer);
或者,我们可以在集合的流上调用foreach():
list.stream()青年大学习第九季第三期答案.foreach(consumer);
两个版本都将迭代列表并打印所有元素:
abcd abcd
在这个简单的例子中,我们使用的foreach()没有区别。
list.foreach()使用增强for循环
default void foreach(consumer<? sup朋友最真er t> action) { objects.requirenonnull(action); for (t t : this) { action.accept(t); } }
list.stream().foreach(): 它首先将集合转换为流,然后对集合的流进行迭代
当一边遍历一边删除的时候,foreach能够快速失败,而stream().foreach()只有等到数组遍历完之后才会抛异常
public class deletedifference { public static void main(string[] args) { list<string> list = arrays.aslist("a", "b", "c", "d"); try { list.foreach(item -> { system.out.println(item); list.remove(0); }); } catch (exception e) { e.printstacktrace(); } list.stream().foreach(item -> { system.out.println(item); list.remove(0); }); }}
到此这篇关于java中list.fore描写时光流逝的唯美句子ach()和list.stream().foreach()区别的文章就介绍到这了,更多相关list.foreach()和list.stream().foreach()区别内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-06 04:04:46,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/5866c926678f8634a10327e80c4cd0a9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:java中list.forEach()和list.stream().forEach()区别.doc
本文 PDF 下载地址:java中list.forEach()和list.stream().forEach()区别.pdf
留言与评论(共有 0 条评论) |