Collection.forEach()
和 Collection.stream().forEach()
用于迭代集合,两者之间没有太大区别,因为它们都给出了相同的结果,尽管它们的内部工作存在一些差异。
Collection.stream().forEach()
基本上用于在一组对象中进行迭代,方法是将集合转换为流,然后迭代集合流。在循环访问集合时,如果对集合进行了任何结构更改,则会引发并发修改异常。
Collection.forEach()
使用集合的迭代器(以指定者为准)。大多数集合不允许在迭代该集合时修改结构。如果该集合发生任何更改,即添加元素或删除元素,则它们将抛出并发修改错误。如果 collection.forEach()
正在迭代同步集合,那么它们将锁定集合段并将其保留在可以对该集合进行的所有调用上。
Java中Collection.stream().forEach()和Collection.forEach()的区别
Collection.stream().forEach() | Collection.forEach() |
---|---|
Collection.stream().forEach() 也用于迭代集合,但它首先将集合转换为流,然后迭代集合流。 |
Collection.forEach() 使用集合迭代器。 |
与 Collection.forEach() 不同,它不以任何特定的顺序执行,即未定义顺序。 |
如果始终按可迭代的迭代顺序执行,如果指定了一个。 |
在集合中的结构修改期间,稍后将引发异常。 | 如果使用 collection.forEach() 在集合中执行任何结构修改,它将立即抛出异常。 |
如果迭代发生在同步集合上,则不会锁定集合。 | 如果对同步集合进行迭代,则会锁定集合并将其保存在所有调用中。 |
下面是一个Java程序,用于显示Collection.stream.forEach()的用法:
// Java Program to show the demonstration of
// Collection.stream().forEach()
import java.io.*;
import java.util.*;
class YiibaiDemo {
public static void main(String[] args)
{
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
// printing each element of list using forEach loop
list.stream().forEach(System.out::print);
}
}
运行结果:
1234
下面是一个Java程序,展示了Collection.forEach()
方法的用法:
// Java Program to show the demonstration of
// Collection.forEach()
import java.io.*;
import java.util.*;
class YiibaiDemo {
public static void main(String[] args)
{
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
// printing each element of list
list.forEach(System.out::print);
}
}
运行结果:
1234
Java中Collection.stream().forEach()和Collection.forEach()的区别
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Java中Collection.stream().forEach()和Collection.forEach()的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-collection-stream-foreach-and-collection-foreach-in-java.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。