gpt4 book ai didi

java - 使用 Map> 避免并发修改异常

转载 作者:行者123 更新时间:2023-11-29 07:53:41 25 4
gpt4 key购买 nike

我有数据结构Map<Long,List<POJO>> .我需要遍历 map ,对于每个列表,我需要向列表中添加元素。因此,例如,如果一个列表有 10 个元素,它可能以 12 个结束。我的问题:如果我采用一种简单的方法迭代映射并修改每个 List<POJO>,是否会导致并发修改异常? ?因为我不会明确更改每个列表的地址。我想一个子问题是,如果 List 需要一个更大的连续 block 来保存它的数组,它会改变它的地址吗?

最佳答案

你的两个问题的答案都是“否”:

  • 如果您所做的只是改变 map 的值,则不会出现 ConcurrentModificationException,因为您实际上并没有更改值本身,只是改变他们的状态。这很容易自行测试和确认。

  • 如果您尝试添加的元素超出其容纳的范围,列表将不会“更改其地址”。相反,将在内部分配更多空间。例如,对于 ArrayList,内部数组将被一个更大的新数组替换,并且元素将被复制过来。

关于java - 使用 Map<Long,List<POJO>> 避免并发修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387194/

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