小编cka*_*nik的帖子

Java:ArrayList如何管理内存

在我的Data Structures类中,我们研究了Java ArrayList类,以及当用户添加更多元素时它如何增长底层数组.这是理解的.但是,当从列表中删除大量元素时,我无法弄清楚这个类究竟是如何释放内存的.查看源代码,有三种方法可以删除元素:

public E remove(int index) {
 RangeCheck(index);

 modCount++;
 E oldValue = (E) elementData[index];

 int numMoved = size - index - 1;
 if (numMoved > 0)
     System.arraycopy(elementData, index+1, elementData, index,
        numMoved);
 elementData[--size] = null; // Let gc do its work

 return oldValue;
}

public boolean remove(Object o) {
 if (o == null) {
            for (int index = 0; index < size; index++)
  if (elementData[index] == null) {
      fastRemove(index);
      return true;
  }
 } else {
     for (int index = 0; …
Run Code Online (Sandbox Code Playgroud)

java memory arraylist

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

arraylist ×1

java ×1

memory ×1