TreeSet和LinkedHashSet类
1、TreeSet
- TressSet是一个基于Tree Map的Navigable Set实现。这些元素使用它们自然排序或者在创建的时提供Comparator进行排序,具体取决于使用的构造函数。此实现为基本操作add、remove和contains提供了log(n)的时间成本。
- 这个实现不是线程安全的,如果多线程并发访问了TreeSet,并且至少一个线程修改了set,必须进行外部加锁,或者使用Sorted Set s =Collections.synchronizedSortedSet(new TreeSet(...))。
- 这个实现持有fail-fast机制。
2、LinkedHashSet类
LinkedHashSet类继承于Set,LinkedHashSet类的继承体系:
- LinkedHashSet是Set接口的Hash表和LinkedList的实现,这个实现不同于Hash Set的是它维护着一个贯穿所有条目的双向链表。此链表定义了元素插入集合的顺序。注意:如果元素重新插入,则插入顺序不会受到影响。
- LinkedHashSet有两个影响其构成的参数:初始容量和加载因子。它们的定义于Hash Set完全相同。但是对于LinkedHashSet,选择过高的初始容量值的开销要比Hash Set小,因为LinkedHashSet的迭代次数不受容量影响。
- LinkedHashSet也不是线程安全的,如果多线程同时访问LinkedHashSet,必须加锁,或者通过使用Collections.synchronizedSet。该类也支持fail-fast机制。
欢迎批评指正,提出问题,谢谢!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步