java需要关注的知识点---ArrayList
程序员文章站
2022-03-23 14:55:21
...
1.ArrayList 容器初始大小为10,使用object数组实现。
2.ArrayList 在扩容、增加元素和删除元素的时候,使用的是数组的深克隆。
3.ArrayList 的add()方法:
ArrayList的ensureCapacity方法:
ArrayList进行扩容的时候并不是2倍的扩容,而是使用(Oldsize* 3)/2 + 1的方式。
插入数组的时候,再已有值的最后插入。
ArrayList的remove方法:
ArrayList在删除元素的时候,会把需要删除元素后面的所有元素都往前移动一位,然后设置list最后一个元素为空,让虚拟机回收该块内存。
2.ArrayList 在扩容、增加元素和删除元素的时候,使用的是数组的深克隆。
3.ArrayList 的add()方法:
public boolean add(E e) {
ensureCapacity(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
ArrayList的ensureCapacity方法:
public void ensureCapacity(int minCapacity) {
modCount++;
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object oldData[] = elementData;
int newCapacity = (oldCapacity * 3)/2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
// minCapacity is usually close to size, so this is a win:
elementData = Arrays.copyOf(elementData, newCapacity);
}
}
ArrayList进行扩容的时候并不是2倍的扩容,而是使用(Oldsize* 3)/2 + 1的方式。
插入数组的时候,再已有值的最后插入。
ArrayList的remove方法:
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;
}
ArrayList在删除元素的时候,会把需要删除元素后面的所有元素都往前移动一位,然后设置list最后一个元素为空,让虚拟机回收该块内存。
上一篇: 浅谈node实现图片上传的方法
下一篇: jQuery中click()方法如何使用
推荐阅读
-
学习Oracle需要掌握的重要知识点
-
【前端开发环境】前端使用GIT管理代码仓库需要掌握的几个必备技巧和知识点总结
-
2020年已经过去4/1:七年老兵分享Java程序员突破能力需要的那些技术点
-
Java中ArrayList类的使用方法
-
浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别
-
JAVA LinkedList和ArrayList的使用及性能分析
-
Java容器ArrayList知识点总结
-
Java中的小知识点总结
-
Java中Vector与ArrayList的区别详解
-
浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别