Java集合主要包括Collections(存放单一元素)和Map(存放键值对)
Collections包括:Set,List,Queue
Set包括HashSet,LinkedHashSet,TreeSet
List包括ArrayList,LinkedList,Vector
Queue包括PriorityQueue,DelayQueue,ArraDeque
Map包括:HashMap,LinkedHashMap,Hashtable,TreeMap
initialCapacity>0,实例化数组,长度即指定长度
initialCapacity=0,实例化数组,为空
initialCapacity<0,抛出异常
创建一个空数组,但此时数组为空。等有元素放入时,才会变成10.
传入的是一个Collection对象,
如果Collection对象长度>0,则执行Arrays.copy()方法将Collection对象内容复制
如果Collection对象长度=0,则将初始化空数组
public static void main(String[] args) {
ArrayList
arr1 [test1, test2]
arr2 [test1, test2]
先检查有无越界,然后通过数组下标获取元素(因为ArrayList底层是数组)
先检查有无越界,记录该位置的旧值,替换新值,返回旧值
如果数组为空,该数组的容量变成10,
如果数组不为空,则添加元素后小于数组长度,则不会扩容,否则就会扩容,
如当第一次调用add()方法时候,elementData.length为0,然后扩容成10,后面继续添加9个元素,依然不会扩容,因为没有超过数组容量10,当添加第11个元素时,会调用grow()方法扩容,int newCapacity = oldCapacity + (oldCapacity >> 1)
然后调用Arrays.copy(int [] origial,int newLength)方法,在这个方法中,创建一个新数组,长度为newLength,然后调用System.arratcopy()方法将旧数组拷贝给新数组,并返回新数组。
先检查是否越界,确认list容量,容量不够,就+1;对数组index开始的元素进行复制到index+1开始的位置,目的就是空出index的位置插入element.
将最后一个元素赋值给节点L,创建新节点,设置新节点的前驱节点为L,后继节点为空,同时更新last节点为新节点,并且判断L是否为空,如果为空则是第一次添加,将first赋值为新节点,否则L的next节点就是新节点。
尾部插入元素
在指定位置添加元素,如果index等于链表长度,则调用linkLast(element)方法;
如果索引是否小于节点数量的一半,从头开始查找;
否则从尾部开始查找。
删除链表中首次出现的指定元素,如果不存在该元素则返回 false。
未完结