java - 正确清除 java arraylist

标签 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 被传入临时 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));

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

最佳答案

而不是 temp.clear()temp = new ArrayList() 。您在 mags 中的代码将多次添加同一个 ArrayList。

并阅读this post关于如何创建ArrayList来自数组

关于java - 正确清除 java arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21598089/

相关文章:

java - 如何打印四部分碎片列表中的数组列表?

java - 远程 EJB3 调用

android - 全局 ArrayList 和 AsyncTask 问题

java - 二维数组,对 Null 元素使用 get 方法,有一个优雅的解决方案吗?

java - ArrayList vs Vector - 除了线程安全和性能之外的其他优势?

java - 网络中的对象编写

如果 number<0,则 JavaFX 按钮可见

java - 使用 Excel 将多个参数添加到 Drools 规则决策表中的操作

java - 如何从测试器类访问/更改 ArrayList?

java - Java将Arraylist的内容写入txt文件