HashSet,LinkedHashset,TreeSet的比较

来源:互联网 发布:网络打印机0个文档被挂 编辑:程序博客网 时间:2024/05/16 18:40

Set的三个实现类特点:

  • 不允许元素重复
  • 都不是线程安全

HashSet

查询效率极高(高于数组),用的最多,底层是HashMap的一个实例。

  • 判断两个对象是否相等的规则:
    1)equals()返回值为true
    2)hashcode()值相同。

  • 要求:
    存在于哈希表中的对象元素都必须要覆盖 equals(),和hashCode()方法。
    链表算法

LinkedHashSet

HashSet的子类,底层采用了哈希表算法保证元素对象不重复和链表算法记录元素对象的先后添加顺序。
在开发中一般很少使用。

TreeSet

只有在做范围查询时才会使用,会对集合里的元素进行排序,底层使用了红黑树算法(树结构比较擅长做范围查询)

总结

1.HashSet是最常用的,做等值查询效率最高,在开发中,最常用到的就是等值查询。
2.TreeSet做范围查询效率较高,在数据库的索引中,范围查询较多,所以树结构主要用来做索引,来提高查询效率。
3.LinkedHashSet在一个集合既不能元素重复,又要记录元素的添加顺序时使用。一般使用较少。

原创粉丝点击