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