体系结构图:
Java集合体系主要由两个根接口派生出来,Collection是单列集合,Map是双列集合,主要存储key-value对
Collection派生出了三个子接口:
- List是有序集合,允许有重复的元素存在,可直接根据元素索引来访问
- Set是无序集合,不允许有重复的元素存在只能根据元素本身来访问
- Queue是队列集合(图中未列出)
List
List接口常用的实现类有:ArrayList,LinkedList,Vector
- ArrayList底层数据结构是数组,可以随机访问,查询快,增删慢
- LinkedList底层数据结构是链表,是采用双向循环链表实现的,查询慢,增删快
- Vector底层数据结构是数组,查询快,增删慢
Set
Set接口常用的实现类有:HashSet,LinkedHashSet,TreeSet
- HashSet底层数据结构采用哈希表实现,元素无序且唯一
- LinkedHashSet底层数据结构采用链表和哈希表共同实现,链表保证了元素的顺序与存储顺序一致,哈希表保证了元素的唯一性
- TreeSet底层数据结构采用二叉树实现,元素唯一且已经排好序