gpt4 book ai didi

来自修改后的集合的 Java 8 流

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:43:43 26 4
gpt4 key购买 nike

假设我有一个 List 对象,仅由一个线程修改(该线程可以添加或删除对象),并且另一个线程偶尔使用上述集合中的流 api 进行一些流操作它的最后(急切的操作)返回一个新的集合。这是线程安全的场景吗?毕竟只有一个线程更新集合。

最佳答案

这完全取决于您的源 List 实现。用ArrayList可能得到ConcurrentModificationException (或者可能会损坏数据或其他一些异常:请参阅评论)。用CopyOnWriteArrayList您可以安全地使用流操作:它们将看到创建流时实际的列表状态。在任何情况下,您都应该检查相应集合的 spliterator() 方法的文档,以查看在并发环境中使用它是否安全。

关于来自修改后的集合的 Java 8 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com