LinkedHashSet
LinkedHashSet类图
LinkedHashSet概述
- 与HashSet主要不同在于,LinkedHashSet维护了一个双链表,并且还定义了迭代顺序,迭代的顺序即为插入的顺序。
- Note:在LinkedHashSet中,插入顺序不会受到重复插入的影响。(在插入之前,会先判断集合中是否包含该值)
- 提供常数时间操作的有:基本操作(add,contains,remove)跟HashSet一样
- add操作,LinkedHashSet性能比HashSet稍微要低一些,因为要维护链表。
- 迭代LinkedHashSet所需的时间与LinkedHashSet的size成比例,而迭代HashSet所需的时间与HashSet的容量capacity成比例。
- 影响LinkedHashSet的性能的两个因素:初始容量init capacity和加载因子loadFactor
LinkedHashSet的实现
借用HashSet的构造方法,创建LinkedHashMap来实现。即,HashSet的三参构造就是为了LinkedHashSet而服务的,而HashSet的实现是借用HashMap来实现的。