art*_*ros 33 java list arraylist
比方说我有一个 ArrayList<String> data;
我正在使用data.add()函数将一些数据添加到此数组中.假设我在这个数组中添加了10个字符串.现在数组的大小为10.
我如何销毁数组中的所有元素?该data.clear()函数只将所有10个元素设置为null.因此,当我尝试添加另一个元素时,它只是处于11位置.我只想从0开始;
我可以使用for循环来替换所有数据,但我真的认为有一种方法可以清空ArrayList.是吗?
Dan*_* D. 66
你的假设似乎不对.在a之后clear(),新添加的数据从索引0开始.
Tom*_*Tom 26
如果您有任何疑问,请查看JDK源代码
ArrayList.clear() 源代码:
public void clear() {
modCount++;
// Let gc do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
Run Code Online (Sandbox Code Playgroud)
您将看到size设置为0,因此您从0位置开始.
请注意,添加元素时ArrayList,后端数组将被扩展(即,如果需要,将数组数据复制到更大的数组),以便能够添加新项.执行ArrayList.clear()时只删除对数组元素的引用并设置size为0,但capacity保持不变.
| 归档时间: |
|
| 查看次数: |
111506 次 |
| 最近记录: |