Java之常用集合特点简述
1 Collection 单列集合
1.1 List (有序可重复)
ArrayList:底层数组,查询快、增删慢,线程不安全,效率高,有索引,可重复
Vector :是老版本的 ArrayList ,唯一区别就是Vector是线程安全的
LinkedList:底层链表(双端队列),查询慢、增删快,具备链表的特点
1.2 Set 接口(无序唯一)
HashSet:基于哈希表结构,无序唯一
a.存储无序,因为对象的hashCode 值和哈希表存储的索引有关,hashCode是相对随机,所以无序;
b.唯一,去重复 依赖于 hashCode 和equals 方法;
c.可以存储 null ,但是 null 不能重复。
TreeSet:基于二叉树结构,元素唯一,可排序可比较
a.去重复,依赖于二叉树的存储特点;
b.排序依赖于二叉树的取特点;
c.有自然排序和比较器排序。
LinkedHashSet:基于链表和哈希表,有序唯一
a.有序,链表保证有序;
b.唯一,哈希表保证唯一。
2 Map 双列集合
2.1 HashMap:无序、键唯一,线程不同步,非安全
2.2 LinkedHashMap:有序,线程不同步,非安全
2.3 HashTable:无序,线程同步,安全
2.4 TreeMap:有序,线程不同步,非安全