List为Collection的子接口
List有序:元素有下标,从0开始,以1递增,可重复
.add(index,element) 在指定索引插入元素
.get()根据下标获取元素
.indexOf("") 第一次出现的索引
.lastIndexOf("") 最后一次出现的索引
.set(索引,"") 改变某个索引的值
ArrayList
非线程安全的,若想编程线程安全,可利用方法Collections.synchronizedList(ArrayList a);
底层为Object[],初始化容量为10
若指定容量,在构造函数中实现 new ArrayList(容量),同时可以new ArrayList(HashSet a)进行二者之间的转换
不够了扩容,变为之前的1.5倍
LinkedList 底层为双向链表
同样也有下标,但查询效率较低
Vector 线程安全的数组,都带有synchronized关键字
初始容量为10,扩容为每次容量的双倍
泛型<> ,使用后集合中只能存储这样类型的数据,返回的数据不是object类型,而是相关的类型
JDK8后允许自动类型推断,钻石表达式 new ArrayList<>;
自定义泛型 eg:class MyClass<T>{
public T get(){
return ;
}
}