如何清除数组列表?

2022-09-05 00:24:05

我有以下代码:ThisClass

static ArrayList<MyClass> classlist; 

如果我打电话给:

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

然后再次调用此行:

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

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


答案 1

下面是一个插图:

代码 1:创建数组列表并添加对象

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();

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

enter image description here

代码 4:重置整个类列表

如果你想让它“不再包含ArrayList”,你这样做:

ThisClass.classlist = null;

这意味着:

enter image description here

另外,请注意,问题的标题提到了“静态 ArrayList”。 在这种情况下并不重要。无论对象是否为静态,问题的结果都是相同的。static


答案 2

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

确实会清除数组(实际上,将创建一个新的数组并将其放置在旧数组的位置)。ThisClass.classlistArrayList

话虽如此,使用以下内容要好得多:

ThisClass.classlist.clear();

这是一种更清晰的方法:在代码中显示您的真实意图,表明您真正想要完成的任务,从而使您的代码更具可读性/可维护性。


推荐