正确清除java arraylist

时间:2014-02-06 08:56:45

标签: java arraylist

我正在尝试从2d数组创建2d ArrayList。实际上我有一个临时ArrayList,我在for循环中解析它到我的2d ArrayList。我试图找到正确的方法来清除这个临时ArrayList,以便每次都传递正确的值到mags ArrayList。

   for (int m = 0; m < M; m++) {
        for (int n = 0; n < N; n++) {
            for (int i = 0; i < gaborWavelet.length; i++) {
                temp.clear();   
                for (int j = 0; j < gaborWavelet[0].length; j++) {
                    sum = gaborWavelet[i][j][m][n][0] / (M * N);
                    temp.add((int) (sum * 170));                
                }
                mags.add(temp);             
            }
        }
    }

在上面的代码中,只有最终的索引-i它在temp m * n * i次中传递。

编辑:

        for (int m = 0; m < M; m++) {
        for (int n = 0; n < N; n++) {
            for (int i = 0; i < gaborWavelet.length; i++) {
                ArrayList<Integer> temp = new ArrayList<Integer>(); 
                for (int j = 0; j < gaborWavelet[0].length; j++) {
                    sum = gaborWavelet[i][j][m][n][0] / (M * N);
                    temp.add((int) (sum * 170));                
                }
                mags.add(temp);             
            }
        }
    }

    System.out.println(mags.get(200));
    System.out.println(mags.get(0));

如果以上是您的意思,我在这里遇到同样的问题。

1 个答案:

答案 0 :(得分:2)

而不是temp.clear()temp = new ArrayList()。使用mags中的代码将多次添加相同的ArrayList。

请阅读this post,了解如何从数组

创建ArrayList