清除arrayList时遇到问题

时间:2011-05-05 16:55:36

标签: java arraylist clear

我有一个2d arraylist并且在一个循环中我想要将2d列表的每个1d列表解析为临时列表。另外,我希望在每次迭代结束时我都要清除这个临时列表,以便下一步解析我的初始2d的i-est列表。

代码如下:

 List<List<Integer>> conVert = new ArrayList<List<Integer>>();
 List<Integer> temp = new ArrayList<Integer>();
 for (int i = 0; i<conVert.size(); i++){
    temp.addAll(conVert.get(i));
    Collections.sort(temp);
    System.out.println(temp);

    for(int j = 0; j<temp.size(); j++){
        // several commands
    }
    temp.clear();
 }

我有几个命令功能不好,因为temp没有正确清除。任何的想法?当我在开始时明确表示我遇到conVert问题时,

1 个答案:

答案 0 :(得分:0)

您可以使用全新的List而不是清除“旧”的List。为什么在for-loop之后需要一个空的List?重用这些基本数据结构无法获得任何好处,甚至可能产生相反的效果。

当您的 List<List<Integer>> conVert = new ArrayList<List<Integer>>(); for (int i = 0; i<conVert.size(); i++){ List<Integer> temp = new ArrayList<Integer>(); temp.addAll(conVert.get(i)); Collections.sort(temp); System.out.println(temp); for(int j = 0; j<temp.size(); j++){ // several commands } } 超出范围时,它将以几乎免费的方式进行垃圾收集,而明确清空它则需要一些资源。

编辑:我想在这种情况下最好让代码说明一下:

{{1}}