问题标签 [copyonwritearraylist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
149 浏览

java - 为什么 CopyOnWriteArrayList 中没有这样的 removeRange() 方法?

为什么在ArrayList有这样的方法而在并发兄弟上却没有?

受保护的无效删除范围(int fromIndex,int toIndex)

只是好奇它不是根本我可以解决它。

0 投票
2 回答
1590 浏览

java - 并发 hashmap 和 copyonwritearraylist

我正在尝试使用 ConcurrentHashMap 填充保存键/值的缓存。

我假设使用 aCopyOnWriteArrayList来处理并发性,并且我将它作为我的键的值,但是我在下面的代码中遗漏了一些东西,并且当多个线程正在执行时它会覆盖它的值。

如何保护CopyOnWriteArrayList从多个线程创建的代码。

这是根据以下建议的代码修订版。

在迭代订阅者地图时,我没有看到值对象。大小为 0 。

0 投票
3 回答
1747 浏览

java - 为什么 CopyOnWriteArrayList 在写入时复制?

从 CopyOnWriteArrayList.java 中,add 方法如下:

不难理解 add 操作应该加锁,让我困惑的是它将旧数据复制到新数组并放弃前一个。同时get方法如下:

没有锁定get方法。我找到了一些解释,有人说复制到一个新数组可以避免 add 和 get 方法在同一个数组上操作。我的问题是为什么两个线程不能同时读写?

0 投票
3 回答
1124 浏览

java - 创建一个arrayList 深拷贝

无论出于何种原因,当我尝试为植物数组列表创建深层副本时,我得到一个空指针异常,我不知道为什么。

0 投票
4 回答
2146 浏览

java - Java CopyOnWriteArrayList 实现是否有改进的替代方案,我如何请求更改 Java 规范?

CopyOnWriteArrayList 几乎具有我想要的行为,如果删除了不必要的副本,那将正是我想要的。特别是,对于在 ArrayList 末尾添加的内容,它的行为可能与 ArrayList 完全相同 - 即,没有理由每次都创建一个新副本,这是非常浪费的。它可以虚拟地限制 ArrayList 的结尾以捕获读者的快照,并在添加新项目后更新结尾。

这种增强似乎值得拥有,因为对于许多应用程序来说,最常见的添加类型是在 ArrayList 的末尾——这甚至是选择使用 ArrayList 开始的原因。

也不会有额外的开销,因为它只能在追加时不能复制,尽管它仍然必须检查是否需要重新调整大小,但无论如何 ArrayList 都必须这样做。

  1. 是否有任何替代实现或数据结构具有这种行为,而无需在末尾添加不必要的副本(即线程安全且经过优化以允许频繁读取,而写入只是在列表末尾添加)?

  2. 如何提交更改请求以请求更改 Java 规范以消除添加到 CopyOnWriteArrayList 末尾的副本(除非需要重新调整大小)?

我真的很想看到核心 Java 库改变了这一点,而不是维护和使用我自己的自定义代码。

0 投票
2 回答
98 浏览

java - ArrayLists在Android中指向相同的对象或数据

我有两个具有相同类型的arraylist 对象。想要通过进行必要的更改将一个数据复制到另一个。但是这种变化会影响我的两个对象。以下是代码。

0 投票
2 回答
2063 浏览

java - Java - 并发清除列表

我正在尝试找到实现以下 API 的好方法:

该类将存储对象,并在调用 processAndClear 时遍历当前存储的对象,以某种方式处理它们,然后清除存储。这个类应该是线程安全的。

显而易见的方法是使用锁定,但我想更加“并发”。这是我将使用的方法:

这将允许尝试添加对象的线程几乎立即继续进行,而无需任何锁定/等待 xlearing 完成。这是或多或少正确的方法吗?

0 投票
2 回答
2169 浏览

java - 将文本文件数据添加到数组 java

我想将 Text.txt 文件中的数据添加到 java 中的 ArrayList。

我创建了一个只有 getter 和 setter 的 POJO Employee 类:

这是我的主要课程:

文本文件数据:

我想要的是:

在这方面的任何帮助都将是可观的

0 投票
2 回答
503 浏览

java - Java中的递归函数 - 线程安全集合

假设我有一个 xml 文档,我可以在其中找到指向相同类型的其他文档的链接,这些文档也可以具有指向另一个文档的链接。在起点,我有要阅读和分析的文件列表。我编写了以下算法来阅读和分析这些文档:

函数 readDocument 如下所示:

它可以工作,但是在执行程序后,我可以找到重复的文件(具有相同内容的文件)。我不应该拥有它们 - 我通过函数 visitURL 中的 if 条件来阻止它。我的问题是:什么在这里不起作用?我想用数组visitedDocs 操作有问题。如何使用已访问的文件进行每个递归调用实际版本的数组?

尽我所能,我有一个递归函数,它在一些集合 X 上运行:

并且X必须始终是实际的。

0 投票
2 回答
200 浏览

android - 如何将 CopyOnWriteArrayList 传递给 Bundle 对象?

我有一个MyObject实现Parcelable接口的数据结构,我想将一个CopyOnWriteArrayList<MyObject>对象传递给一个 Bundle 对象以创建一个新的 Fragment。所以我尝试了

但是由于 CopyOnWriteArrayList 不是 ArrayList 的子类,所以它与方法签名不匹配。

有没有办法将 CopyOnWriteArrayList 传递给 Bundle 对象?