java - 当同时修改它正在工作的列表时,Java 流如何工作?
问题描述
如果我有一个包含 10 个元素的列表,并且我对其进行了流视图,则按年龄对其进行过滤并将其收集到另一个列表中。在这之间,有人在列表中添加了 5 个元素。只有 10 个元素或 15 个元素时,流的行为是什么??
解决方案
阅读javadoc中的“非干扰”部分。尤其是:
除非流源是并发的,否则在流管道执行期间修改流的数据源可能会导致异常、不正确的答案或不一致的行为。
所以你的问题的答案是它取决于列表的类型,它是否并发,如果不是,它如何处理并发操作以及你在什么时候进行修改(在终端操作之前或中间)。
推荐阅读
- rest - mLab REST API - 按字符串查询
- google-apps-script - 我想用工作表中特定的静态单元格的内容填充电子邮件
- windows - 如何在 Powershell 中为变量添加时间戳
- java - 严重:开始事件引发错误 java.lang.ExceptionInInitializerError Intellij/Tomcat
- python - 如何让 PyCharm 在输出控制台中显示整个数据框?
- eiffel - Eiffel:如何设置自动测试的命令行参数?
- javascript - JavaScript 错误使用
使用 ColdFusion 2018 标记 - ios - ios 应用程序加载程序登录挂起
- laravel - Laravel Scope 查询以计算每个用户的项目类型
- graphics - 在 Vulkan 中创建统一缓冲区