参考文章:
java集合超详解
10分钟拿下 HashMap
写在前面:Connection继承了Iterator接口
1.Connection接口继承关系图:
2.Connection集合的方法:
3.Map接口继承关系图
4.Map集合的主要方法:
正文开始
一、List(有序:即元素按进入先后有序保存)
附图:List特有的方法
1.集合和数组的区别
2.ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高,可以存储重复元素
ArrayList有三个构造方法:
public ArrayList(int initialCapacity)//构造一个具有指定初始容量的空列表。
public ArrayList() //默认构造一个初始容量为10的空列表。
public ArrayList(Collection<? extends E> c)//构造一个包含指定 collection 的元素的列表
扩容机制:
默认初始化容量为10,假如有20个数据需要添加,那么会分别在第一次的时候,将ArrayList的容量变为10;之后扩容会按照1.5倍增长。也就是当添加第11个数据的时候,Arraylist继续扩容变为10*1.5=15;当添加第16个数据时,继续扩容变为15 * 1.5 =22个
如果往指定索引添加数据,但是那个索引的地方又有值,那么从那个索引所在的位置开始(包括索引所在位置的元素)一直到最后,所有元素顺势向后移动一位。
3.LinkedList: 底层数据结构是双向链表,查询慢,增删快,线程不安全,效率高,可以存储重复元素
具体增删改查方法可查询JDK文档
迭代器的创建:(均重写自List接口里面的方法)
Iterator it = linkedList.descendingIterator();// 返回以逆向顺序在此双端队列的元素上进行迭代的迭代器。
ListIterator it = linkedList.listIterator(int index);//返回此列表中的元素从指定位置开始的列表迭代器(按适当顺序).
列表迭代器的功能更加的丰富比如可以向list中添加和修改对象。
4. Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素
Vector有四个构造方法:
public Vector()//使用指定的初始容量和等于0的容量增量构造一个空向量。
public Vector(