java-collection-list
2019-08-21 08:48:18 16 举报
java集合
作者其他创作
大纲/内容
ArrayList#add(E)
elementData[size++] = E
数组copy-把index之后的向后复制,中间位置赋值
同add。size+E.lenth
E unlink(removeNode)修改前后指向
LinkedList内部采用Node节点的数据以链表方式维护数据
LinkedList#remove(object)
Vector的数据结构和ArrayList基本一致,采用数组的方式。
清空最后一位并缩小容量,方便GC
ensureCapacityInternal(size+1)确保容量
否
f=first
遍历数据,找到object在移除
ensureExplicitCapacity不足则扩容
checkElementIndex(index)检查索引
node(int index)找到当前index位置的节点,根据index和size>>1比较结果,决定从头或尾去查
index==size
rangeCheckForAdd(index)检查索引
ArrayList内部采用数组来维护数据的
LinkedList#remove(index)
是
checkPositionIndex(index)检查索引
elementData[--size] = null
LinkedList#addall(E)
数组copy-从index+1向后的数据复制到index的位置
LinkedList#remove()
判断确保初始容量=10
是最后一位
区别ArrayList:1,indexOf(obj)方法用来返回obj的索引。2,所有的操作方上都加synchronized观念字,保证了线程安全。3,扩容。构造的时候如果传入了capacityIncrement扩容量,则扩至原始长度+capacityIncrement,否则扩至原来容量的2倍
计算并返回容量calculateCapacity()
ArrayList#remove(object)
LinkedList#add(E)
ArrayList#addall(E)
unlinkFirst(font color=\"ff3333\
node(int index)
返回移除的值
removeFirst()
ArrayList#remove(index)
for(Node<E> x = first; x != null; x = x.next){if (o.equals(x.item)) unlink(x);}
0 条评论
下一页