java中集合分为 Collection和Map,两种体系
Collection 接口:单列数据,定义了存取一组对象的方法的集合。
List:元素有序,可重复的集合。
Set:元素无序,不可重复的集合。
Map接口:双列数据,保存具有“key-value”.
List:
ArrayList: 底部是由数组组成的,底层创建一个长度为0的数组,在插入第一个元素时,数组的长度变成10,当插入第10个元素时,数组的长度扩容1.5倍,无限扩容下去。同时把旧数组的元素复制到新数组上。(Jdk1.8),
(jdk1.7)底层创建一个长度为10的数组,当插入元素超过第10个时,数组扩容1.5倍。
开发中建议使用带参构造器创建ArrayList(放整数),避免频繁扩容。
LinkedList:内部声明数据类型为 “Node"的属性first、last,用来记录首末元素,默认值为null,
保存数据的基本结构是双向链表,node 类定义了两个属性:pre:记录前一个元素的位置,next:记录了后一个元素的位置。
ArrayList中常用的方法:
void add(int index , Object obj);在index位置插入obj元素
boolean addAll(int index , Collection coll);将coll中的所有元素插入到,当前集合的index位置
Object get(int index);根据索引获取集合中的元素
int indexOf(Object obj);查看obj元素在集合中,第一次出现的位置
int lastIndexOf(Object obj); 查看obj元素在集合中,最后一次出现的位置
Object remove(int index);根据索引删除集合中的元素
Object set(int index, Object obj);将指定index位置的元素,设置成obj
List subList(int formIndex , int toIndex); 返回从formIndex到toIndex位置的子集合