如何在修改列表时从列表中删除

shr*_*pah 4 java

我正在尝试创建一个霍夫曼树,并且正在尝试合并两棵树.我无法弄清楚如何在没有得到"并发修改异常"的情况下删除程序中的树,因为我正在迭代列表并尝试同时从列表中删除.

BinaryTree<Character, Integer> t1 = null;
        BinaryTree<Character, Integer> t2 = null;
        BinaryTree<Character, Integer> tFinal = null;
        int treeSize = TREES.size();

        for (int i = 0; i < treeSize; i++) {

            for (BinaryTree<Character, Integer> t : TREES) {
                System.out.println("treeSize " + treeSize);
                System.out.println(t.getRoot().getElement()
                        + "  t.getRoot().getElement()");

                // here I edited the merge function in Binary Tree to set
                // the new root
                // to have null value for value, and itemTwo for weight
                System.out.println(t.getRoot().getValue() + " weight of tree \n");
                t1 = t;
                TREES.remove(t);

            }
            for (BinaryTree<Character, Integer> t : TREES){
                t2 = t;
                System.out.println(t);
            }
            int weight = t1.getRoot().getElement() + t2.getRoot().getElement();
            tFinal.merge(null, weight, t1, t2);
        }
Run Code Online (Sandbox Code Playgroud)

Cap*_*awk 7

Java阻止您在循环中修改集合.您将需要使用迭代器.


归档时间:

查看次数:

281 次

最近记录:

12 年,8 月 前