一、集合总结篇
1、Collection---单列集合
(1)、List------------有序,有索引,可以重复
ArrayList----------------------底层是数组,线程不安全,改查快,增删慢
LinkedList--------------------底层是链表,线程不安全,增删快,改查慢
vector--------------------------底层是数组,增删改查都慢,线程安全(一般不用)
如果是改查频率高,则用ArrayList
如果是增删频率高,则用LinkedList
如果是增删改查频率高,则用ArrayList
(2)、 Set------------无序,无索引,不可以重复
HashSet--------------------------------底层是哈希算法,元素唯一性,效率比较高
LinkedHashSet--------底层是链表,元素唯一性,存取一致性
TreeSet---------------------------------底层是二叉树,非自定义对象,自动有序(字典顺序)
一般在开发过程中用HashSet,效率高。而TreeSet一般作面试使用,会问到有几种排序方式及其区别。TreeSet:自定义对象: 需要实现Comparable<T>或Comparator<T>接口,然后重写compareTo 方法或compare方法(两种排序方式,第一种是实现Comparable<T>是自然排序,第二种实现Comparator是比较器排序)
2、Map--双列集合,键值映射关系,键存在唯一性,不可重复
HashMap--------------------------------底层哈希算法,针对键
LinkedHashMap--------底层是链表,针对键
TreeMap---------------------------------底层二叉树,针对键
开发中一般用HashMap,而其它一般作为入职面试使用