java 中的集合分为单列集合和双列集合,单列集合顶级接口为 Collection,双列集合顶级接口为 Map。
Collection 的子接口有两个:List 和 Set。
List 接口的特点:元素可重复,有序(存取顺序)。 list 接口的实现类如下:
ArrayList:底层实现是数组,查询快,增删慢,线程不安全,效率高;
Vector:底层实现是数组,查询快,增删慢,线程安全,效率低;【废弃】
LinkedList:底层实现是链表,增删快,查询慢,线程不安全,效率高;
Set 接口的特点:元素唯一,不可重复,无序。 Set 接口实现类如下:
HashSet:底层实现 hashMap,数组+链表实现,不允许元素重复,无序。
TreeSet:底层实现红黑二叉树,实现元素排序
Map 接口的特点:key-value 键值对形式存储数据 Map 接口实现类如下:
HashMap:底层数组+链表实现,线程不安全效率高;
TreeMap:底层红黑二叉树实现,可实现元素的排序;
LinkedHashMap:底层hashmap+linkedList 实现,通过 hashmap 实现
key-value 键值对存储,通过链表实现元素有序。