【发布时间】:2018-11-18 10:47:57
【问题描述】:
我有一个名为 find_duplicates(List<DP> dp_list) 的方法,它采用我的自定义数据类型 DP 的 ArrayList。每个 DP 都有一个名为“ID”的字符串,每个 DP 应该是唯一的。
我的方法遍历整个列表,并将没有唯一 ID 的任何 DP 添加到另一个 ArrayList,该方法完成时返回。它还将 DP 的布尔字段 isUnique 从 true 更改为 false。
我想让这个方法多线程,因为每个元素的检查都独立于其他元素的检查。但是对于每次检查,线程都需要读取 dp_list。是否可以同时将同一个 List 的读取权限授予不同的线程?您能建议一种使其成为多线程的方法吗?
现在我的代码看起来像这样-
List<DP> find_duplicates(List<DP> dp_list){
List<DP> dup_list = new ArrayList<>();
for(DP d: dp_list){
-- Adds d to dup_list and sets d.isUnique=false if d.ID is not unique --
}
return dup_list;
}
【问题讨论】:
-
看流
-
可以使用java-8并行流
标签: java multithreading arraylist java-8 duplicates