一、单列集合Collection - 有序单列集合List - 实现类
1.List接口
父接口Collection add、remove、removeIf 、 get 、set 、sort 、size、addAll、 removeAll、clear、subList
2.并发修改异常
:集合操作数据方式很多,迭代器和其他 如果使用迭代器就使用迭代器方式操作。如果使用其他就都用其他方式操作。
3.ArrayList
clone 克隆一个新的集合。 数组结构,特点:查询块,增删慢。
4.LinkedList
双向链表,特点:增删快, 查询慢。
addFirst前增加 addLast后增加
removeFirst removeLast
push压数据 pop弹数据
泛型 new应用<引用数据类型>
5.泛型类
特点:类上声明,整个类都可以用,不允许再静态方法上使用
public class FxClass{}
6.泛型方法
特点:方法自己声明自己用。可以静态和非静态都能使用。
普通方法
静态方法
public <T> void show(T value){ }
public static <T> void show2(T value){ }
泛型接口
public interface FxInterface<T> {
public void show(T value);
}
public class FxInterfaceImpl<T> implements FxInterface<T> {}
7.泛型通配符
所传类型为知<? xx> 实参未知
只能当做参数会限定类型范围
//Number或Number的子类型
public void show1(List<? extends Number> list){}
//Number或Number的父类型
public void show2(List<? super Number> list){}
二、无序单列集合Set接口
1.Set接口(无序单列集合的顶层接口)
HashSet | LinkedHashSet | TreeSet
Set接口 - 方法全是Collection父类接口的方法 add remove
Set接口特点: 值唯一
2.HashSet
[哈希算法 数组+红黑树]
特点:没有存储顺序,会默认的一个排序方式 值唯一,查询快,增删慢。
3.LinkedHashSet
[链表]
特点:值唯一,但是有存储顺序。 查询慢,增删快。
4.TreeSet
专门为Set排序使用的,注意:不能直接存自定义(默认只支持基本类型包装类和字符串)
特点:排序 值唯一, 且有字典顺序。
默认排序 – 字典(使用基本类型包装类和字符串)
自然排序 – 只应用在自定义对象中,使用时需要实现Comperable接口并重写方法
比较器排序 – 所有类型都可以使用 需要在定义TreeSet时候给构造器传比较器 Compertor
5.List接口(有序单列集合的顶层接口)
ArrayList | LinkedList
接口特点:有存储顺序并且值可重复。
6.ArrayList [数组结构] 有索引
特点:有索引 查询快 增删慢。 get(index)
7.LinkedList [链表]
特点: 查询慢 增删快。 addFirst addLast removeFirst removeLast