问题是我有这个方法createNode()在树中创建一个节点,然后如果它是一个离开节点,它将它添加到一个ArrayList<Tree> treeLeaves,我在浏览treeLeavesArrayList 时调用这个方法,如下所示:
Iterator<Tree> iter = treeLeaves.iterator();
while (iter.hasNext()) {
iter.next().createNode();
}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
For (Tree cursor : treeLeaves) {
cursor.createNode();
}
Run Code Online (Sandbox Code Playgroud)
但我一直有这个例外:
Exception in thread "main" java.util.ConcurrentModificationException
Run Code Online (Sandbox Code Playgroud)
即使把下面的代码放在一起snychronized(treeLeaves){}.PS:我不知道这是否有用但是; 这是一棵n树.
你需要一个ConcurrentList ......
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/CopyOnWriteArrayList.html
此外,您无法在浏览时更改arraylist ...而是可以使用tempoaray内存中的缓冲区编辑当前列表(如果您愿意).
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |