Collection 单列集合的顶层接口
List 有序 有索引 可重复
ArrayList
底层数据是数组
查询快 增删慢
线程不安全 效率高
LinkedList
底层数据是链表
查询慢 增删快
线程不安全 效率高
Vector
底层数据是数组
查询快 增删慢
线程安全 效率低
Set 元素唯一
HashSet
底层是哈希表 查询和增删都比较快
无序 唯一
通过hashCode方法和equals方法
先判断hashCode
不同 添加到集合
相同 继续比较equlas
不同 添加到集合
相同 不添加
LinkedHashSet
底层是链表 + 哈希表
链表保证元素有序 哈希表保证元素唯一
通过hashCode方法和equals方法
先判断hashCode
不同 添加到集合
相同 继续比较equlas
不同 添加到集合
相同 不添加
查询多 ArrayList
增删多 LinkedList
保证唯一 HashSet
保证唯一有序 LinkedHashSet
Collections 集合的工具类
public static boolean addAll(Collection c, T… elements):往集合中添加一些元素。
public static void shuffle(List<?> list):打乱集合顺序。
public static void sort(List list):将集合中元素按照默认规则排序。
public static void sort(List list,Comparator<? super T> ):将集合中元素按照指定规则排序。
Comparable比较
实现此接口 可以进行自然排序 123 abc Integer String都实现类此接口
如果自定义类型实现此接口 也可以重新定义规则
自己-参数
升序排列
参数-自己 降序排列
Comparator比较
相当于有个裁判 来进行判断
自己定义规则来进行排序
参数1-参数2 升序
参数2-参数1 降序