集合
- Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口:List、Set 和 Queue。
- 需要根据键值获取到元素值时就选用Map接口下的集合,需要排序时选择 TreeMap,不需要排序时就选择 HashMap,需要保证线程安全就选用 ConcurrentHashMap。
- 需要存放元素值时,就选择实现Collection 接口的集合,需要保证元素唯一时选择实现 Set 接口的集合比如 TreeSet 或 HashSet,不需要就选实现 List 接口,如 ArrayList 或 LinkedList。
-
HashSet,TreeSet,ArrayList,LinkedList,HashMap,TreeMap 都是线程不安全的。Collections 提供了多个静态方法可以把他们包装成线程同步的集合。
图:主要的继承派生关系
List,Set,Queue,Map区别
- List(顺序): 存储的元素是有序的、可重复的。
- Set(独一无二): 存储的元素是无序的、不可重复的。
- Queue(排队功能): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。
- Map