如何清除ArrayList?

时间:2013-04-13 18:30:23

标签: java android arraylist

我在ThisClass中有以下代码:

static ArrayList<MyClass> classlist; 

如果我打电话:

ThisClass.classlist = new ArrayList<MyClass>();
ThisClass.classlist.add(object);

然后再次拨打这一行:

ThisClass.classlist = new ArrayList<MyClass>();

它会重置ThisClass.classlist列表,即类列表列表将不再包含对象吗?

3 个答案:

答案 0 :(得分:23)

以下是插图:

代码1:创建ArrayList并添加对象

ThisClass.classlist = new ArrayList<MyClass>();
ThisClass.classlist.add(object);

结果如下:

enter image description here

代码2:通过重新初始化重置

ThisClass.classlist = new ArrayList<MyClass>();

结果 - 你通过指向一个新对象来重置它:

enter image description here

代码3:通过清除对象重置

要使其“不再包含对象”,您应该做的是:

ThisClass.classlist.clear();

清除所有元素的循环并使它们 null 。在内部,ArrayList也指向其对象的内存地址,但为简单起见,只要认为它们在调用此方法时被“删除”。

enter image description here

代码4:重置整个班级列表

如果你想让它“不再包含ArrayList”,你可以:

ThisClass.classlist = null;

这意味着:

enter image description here

另外,请注意您的问题标题提到“静态ArrayList”。 static在这方面无关紧要。无论对象是否为静态,问题的结果都是相同的。

答案 1 :(得分:4)

调用

ThisClass.classlist = new ArrayList<MyClass>();

清除ThisClass.classlist数组(实际上,会创建一个新的ArrayList并将其放在原来的位置。)

话虽如此,使用起来要好得多:

ThisClass.classlist.clear();

这是一种更清晰的方法:在代码中显示您的真实意图,指出您真正想要实现的目标,从而使您的代码更具可读性/可维护性。

答案 2 :(得分:2)

正确。

从技术上讲,你没有清除 ArrayList这样做,实际上你实例化了一个新的空ArrayList