当前位置: 首页 > 知识库问答 >
问题:

可迭代之间的差异。forEach()和iterable.stream()。forEach()[重复]

松新
2023-03-14

看起来我可以调用< code>list.forEach(a -

共有1个答案

贺刚毅
2023-03-14

有一些区别:

Iterable.for每个保证以迭代顺序处理,如果它是为Iterable定义的。(迭代顺序通常为列表定义得很好。)Stream.for每个都没有;必须使用Stream.forEachOr的代替。

Iterable.forEach 可能允许对底层数据结构产生副作用。尽管如果在迭代期间修改了集合,许多集合的迭代器将抛出 ConcurrentModificationException,但某些集合的迭代器明确允许这样做。例如,请参阅 CopyOnWriteArrayList。相比之操作通常不得干扰流源。

如果Iterable是一个同步的包装器集合,例如,来自Collections.synchronizedList(),那么在整个迭代期间,对其上的for

 类似资料:
  • 在任何情况下(反之亦然),是否有任何理由选择并行的。对于每个而不是等待ForEachAsync?或者它们实际上是相同的? VS公司

  • 我使用的是mongoDB PHP,当我使用find查询或聚合框架时,结果是一个游标,我可以使用foreach循环或while循环对游标进行迭代。例如,我要执行以下查询 我可以使用以下两种方法迭代结果

  • 问题内容: 我正在运行以下代码,但有时在运行时会出现某种并发异常。 我对其进行了重构以解决并发问题,但这确实使我提出了一个问题。如果将for构造更改为Iterator模式,性能会有所不同吗?foreach构造和Iterator类之间的访问级别有什么区别? 问题答案: 区别主要在于语法糖,不同之处在于可以从迭代中删除项目。从技术上讲,增强的循环使您可以循环遍历所有,其中至少包括s和数组。 不必担心性

  • 我注意到以下代码在netbeans中是完全合法的: 然而eclipse对此并不满意,我必须这样初始化它: 有趣的是netbean建议不要在初始化部分指定类型参数,而是使用菱形运算符??我想知道这两种方法之间的区别。以及应该使用哪一种,这样代码就可以在不同的IDE中使用而不会有任何变化。

  • 这是一个例子:代码A: 另一个代码B可以这样使用: 两者有什么区别,有和没有?

  • 我可以在varArgs上使用或吗?