|
|
1
3
调用addall并传递对集合本身的引用。如果通过代码进行调试,您将看到this.vertexstore.get(v)返回与输出变量引用的对象相同的对象。 通常,对于哈希集来说,这不是问题,因为如果您只是添加所有相同的元素,addall实际上不会修改哈希集的状态。然而,在本例中,您将在将HamiltonPath实例添加到集合后修改它们,从而更改它们的哈希代码,并使哈希集认为要添加的对象与它已经添加的对象不同。 下面是一些比我的散文更好地说明问题的代码:
|
|
|
2
-2
您的代码会中断,因为您在迭代集合时修改集合,而Java不喜欢。如果要这样做,请使用使用使用与标准映射不同类型迭代器的ConcurrentHashMap。 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
H3007 · 并发运行python子进程似乎不是并发的 2 年前 |
|
|
The Oddler · TVar会阻止读取直到更改吗? 2 年前 |
|
|
Wang Tuma · 使用信号量的c++并发问题:按顺序打印 2 年前 |
|
|
Marcel Batista · 在不同线程中更新密钥时的字典线程安全 2 年前 |
|
|
rico · 当volatile关键字真的是必要的? 2 年前 |