【Java集合类:Collection--List, Set, Map】
1.JAVA集合类
最常用的集合有List, Set 和 Map
List ------------LinkedList
------------ArrayList
------------Vector
|-------Stack
Set------------HashSet
|-------LinkedHashSet
-------------SortedSet
|------TreeSet
对于它们的数据是否可以重复出现,是否有序,有如下特点:
2.List
2.1 ArrayList
List的本质是array。 它在插入操作时会自动增加其大小,如下图的JDK 1. 6提供的源码:
[java]
private transient Object[] elementData; //elementData是一个数组
public void ensureCapacity(int minCapacity) {
modCount++;
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object oldData[] = elementData;
int newCapacity = (oldCapacity * 3)/2 + 1; //每次自动增加windows xp sp3纯净安装版xp系统下载适量长度
if (newCapacity < minCapacity)
newCapacity = minCapacity;
// minCapacity is usually close to size, so this is a win:
elementData = Arrays.copyOf(elementData, newCapacity); //拷贝旧数组到新数组,增加长度
}
}
public void add(int index, E element) { //时间复杂度: O(n)
if (index > size || index < 0)
throw new IndexOutOfBoundsException(
"Index: "+index+", Size: "+size);