Java 中 Collection.stream().forEach() 和 Collection.forEach() 的区别
javaobject oriented programmingprogramming更新于 2025/3/3 19:24:17
Collection.stream().forEach() 和 Collection.forEach() 都用于对集合进行迭代。
Collection.forEach() 使用集合的迭代器。大多数集合在迭代时不允许结构修改。如果在迭代过程中添加或删除任何元素,它们将立即抛出并发修改异常。如果 Collection.forEach() 正在迭代同步集合,那么它们将锁定集合的片段并在所有调用中保持它。
Collection.stream().forEach() 也用于迭代集合,但它首先将集合转换为流,然后迭代集合的流,因此处理顺序未定义。它还会抛出并发修改异常,如果在迭代它们时发生任何结构变化,它将立即抛出异常。
| Sr.否。 | Key | Collection.forEach() | Collection.stream().forEach() |
|---|---|---|---|
1 | Basic | Collection.forEach() 使用集合的迭代器 | Collection.stream().forEach() 也用于迭代集合,但它首先将集合转换为流,然后迭代集合的流 |
2 | 顺序 | 它始终按迭代顺序执行Iterable,如果指定了。 | 顺序未定义 |
3 | 锁定 | 如果迭代发生在同步集合上,则它会锁定集合并保持在所有调用中都执行该操作 | 它不会锁定集合 |
4. | 异常 | 如果在集合中发生任何结构修改,它将立即抛出异常collection | 稍后将抛出异常 |
示例 Collection.stream().forEach
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List list= new ArrayList();
list.add("Ram");
list.add("TutorialPoints");
list.stream().forEach(System.out::print);
}
}
示例 Collection.forEach
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List list= new ArrayList();
list.add("Ram");
list.add("TutorialPoints");
list.forEach(System.out::print);
}
}
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

