底层使用 Object[] 存储元素html
DEFAULT_CAPACITY 默认初始化容量10java
不指定初始化容量大小的构造器:默认为一个空数组数组
当实例调用add(E e) 会进行List扩容 ,初始化的时候为10,以后再次扩容的大小为原来的1.5倍spa
public void trimToSize();若是集合大小比实际集合中元素的个数多,调整集合的真实大小code
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8; 集合最大的大小
orm
Arrays.copyOf() 底层调用 System.arraycopy()
htm
判断某个对象在ArrayList实例中的位置,使用的是for循环查找。其中contains(Object o) 方法也是调用indexOf(Object o)对象
public E set(int index, E element) 替换指定位置的元素element
不能在List迭代过程当中进行元素移除rem
public class ListTest { public static void main(String[] args) { ArrayList list = new ArrayList(); for (int i = 0; i < 10; i++) { list.add(i); } for (int i = 0; i < list.size(); i++) { Object o = list.get(i); System.out.println(o); list.remove(o); } System.out.println(list); } }
0 2 4 6 8 [1, 3, 5, 7, 9]
应当使用 Iterator
public class ListTest { public static void main(String[] args) { ArrayList list = new ArrayList(); for (int i = 0; i < 10; i++) { list.add(i); } for (Iterator iterator = list.iterator(); iterator.hasNext();) { Object object = (Object) iterator.next(); iterator.remove(); } System.out.println(list); } }
[]