Jak*_*ake 11 java android arraylist
我有以下代码ThisClass:
static ArrayList<MyClass> classlist;
Run Code Online (Sandbox Code Playgroud)
如果我打电话:
ThisClass.classlist = new ArrayList<MyClass>();
ThisClass.classlist.add(object);
Run Code Online (Sandbox Code Playgroud)
然后再次调用此行:
ThisClass.classlist = new ArrayList<MyClass>();
Run Code Online (Sandbox Code Playgroud)
它会重置ThisClass.classlist列表,即类列表列表将不再包含对象吗?
Jop*_*ops 27
这是一个例子:
ThisClass.classlist = new ArrayList<MyClass>();
ThisClass.classlist.add(object);
Run Code Online (Sandbox Code Playgroud)
结果如下:

ThisClass.classlist = new ArrayList<MyClass>();
Run Code Online (Sandbox Code Playgroud)
结果 - 你通过使它指向一个新的对象来重置它:

你应该做什么使它"不再包含一个对象"是:
ThisClass.classlist.clear();
Run Code Online (Sandbox Code Playgroud)
清除所有元素的循环并使其为空.在内部,ArrayList也指向其对象的内存地址,但为了简单起见,只要认为它们在调用此方法时被"删除".

如果你想让它"不再包含ArrayList",你可以:
ThisClass.classlist = null;
Run Code Online (Sandbox Code Playgroud)
这意味着:

另外,请注意您的问题标题提到"静态ArrayList".static在这种情况下并不重要.无论对象是否为静态,问题的结果都是相同的.
呼唤
ThisClass.classlist = new ArrayList<MyClass>();
Run Code Online (Sandbox Code Playgroud)
确实会清除ThisClass.classlist数组(实际上,会创建一个新数组ArrayList并将其放置在旧数组的位置)。
ThisClass.classlist.clear();
Run Code Online (Sandbox Code Playgroud)
这是一种更清晰的方法:在代码中显示您的真实意图,表明您真正想要完成的任务,从而使您的代码更具可读性/可维护性。
| 归档时间: |
|
| 查看次数: |
13448 次 |
| 最近记录: |