Collection:*接口,不可以被直接new出来,只能new出其中的一个实现类。有两个子接口都继承它(有序:List,无序:Set)
List:有序(下标是有序的),有下标。可重复(同一个元素再集合中可以占有多个位置),其下有三个实现类:ArrayLst,LinkedList,Vector。
ArrayList:ArrayList是基于“数组实现”的List类,默认容量为10。扩容:原有的容量+容量的一半。使用场景:查询。当从 ArrayList 的中间位置插入或者删除元素时,需要对数组进行复制、移动代价比较高。并且ArrayList是线程不安全,但可以手动将ArrayList线程变成安全的,方法如下:
一:使用synchronized关键字
二:使用Collections.synchronizedList();
LinkedList:LinkedList内部以链表的形式来保存集合中的元素,查询的性能较差,但是增、删、改元素时,效率快。可作为队列和栈使用。线程不安全
Vector:特点跟ArrayList基本一样,除Vector线程要比ArrayList线程更安全,因为(Vector内部方法都是通过 synchronized 关键字同步的)。