一、Collection是单列集合
(一)List 元素是有序的、可重复的
- 有序的collection,可以对列表中的每个元素的插入位置进行精确地控制
- 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素
- 可存放重复元素,元素存取是有序的
List接口中常用类
- Vector:线程安全,速度慢,已被ArrayList替代,底层数据结构是数组结构
- ArrayList:线程不安全,查询速度快,底层数据结构是数组结构
- LinkedList:线程不安全,增删速度快,底层数据结构是链表结构
具体转:【Java】List常用类,ArrayList与Array区别,Queue的用法
(二)Set(集) 元素无序的、不可重复
- 取出元素的方法只有迭代器
- 不可存放重复元素
- 元素存取是无序的
Set接口中常用的类
- HashSet:线程不安全,存取速度快
保证元素的唯一性:依赖于元素的hashCode
方法和equals
方法 - TreeSet:线程不安全,可以对Set集合中的元素进行排序
保证元素的唯一性:通过compareTo
或者compare
方法来保证元素的唯一性。元素是以二叉树形式存放的
二、Map 是一个双列集合
- Hashtable
- HashMap
- LinkedHashMap
- TreeMap
具体介绍转:java.util.Map:HashMap HashTable LinkedHashMap TreeMap
三、Collection和Collections的区别
- Collection是集合类的上级接口,子接口主要有
Set
和List
、Map
- Collections是针对集合类的一个帮助类,提供了操作集合的工具方法:一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作