比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同

【CSDN】(第三点) HashSet LinkedHashSet 和 TreeSet 三者的对比

  1. HashSet、LinkedHashSet 和 TreeSet 都是 Set 接口的实现类,都能保证元素唯一,并且都不是线程安全的。
  2. HashSet、LinkedHashSet 和 TreeSet 的主要区别在于底层数据结构不同。
    1. HashSet 的底层数据结构是哈希表(基于 HashMap 实现)。
    2. LinkedHashSet 的底层数据结构是链表和哈希表,元素的插入和取出顺序满足 FIFO。
    3. TreeSet 底层数据结构是红黑树,元素是有序的,排序的方式有自然排序和定制排序。
  3. 底层数据结构不同又导致这三者的应用场景不同
    1. HashSet 用于不需要保证元素插入和取出顺序的场景
    2. LinkedHashSet 用于保证元素的插入和取出顺序满足 FIFO 的场景
    3. TreeSet 用于支持对元素自定义排序规则的场景。