Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 同时更新列表_Java_Java.util.concurrent - Fatal编程技术网

Java 同时更新列表

Java 同时更新列表,java,java.util.concurrent,Java,Java.util.concurrent,我有一个将被更新的帐户列表-不太频繁,每天更新1-2次。 每隔很长一段时间就会有一个“包含”查找此数据。 理想的数据结构应该是ConcurrentLinkedList,但不幸的是它并不存在。 CopyOnWriteArrayList是唯一的首选选项吗?如果您主要阅读,为什么需要并发数据结构。相反,您可以使用HashSet或HashMap。这将使阅读速度加快。它更新的频率非常低,因此您可以显式地同步编写部分。您好,为什么您不考虑某种树或哈希映射数据结构,在这种数据结构中首先查找CopyOnWrit

我有一个将被更新的帐户列表-不太频繁,每天更新1-2次。
每隔很长一段时间就会有一个“包含”查找此数据。
理想的数据结构应该是ConcurrentLinkedList,但不幸的是它并不存在。

CopyOnWriteArrayList是唯一的首选选项吗?

如果您主要阅读,为什么需要并发数据结构。相反,您可以使用HashSet或HashMap。这将使阅读速度加快。它更新的频率非常低,因此您可以显式地同步编写部分。

您好,为什么您不考虑某种树或哈希映射数据结构,在这种数据结构中首先查找
CopyOnWriteArrayList
听起来非常适合您的用例。您对此有何反对意见?您可能正在查找Set=Collections.newSetFromMap(新的ConcurrentHashMap());这似乎是错误的,因为当一个线程写入另一个线程时,它不应该读取过时的数据。但它更新得如此之少,您可以使用锁显式地处理它。正确的?。此外,在您的情况下,您的读取性能应该更快,列表对于包含的复杂性为o(n)。然后,您必须单独实现读/写锁,而不是显式锁,其中多个线程可以读取。可以设置可以使用set set=Collections.newSetFromMap(new ConcurrentHashMap());