版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011517841/article/details/82381389
HashSet TreeSet LinkedHashSet
1. 继承关系
1) HashSet
2) LinkedHashSet
3) TreeSet
2. 顺序
HashSet无序。LinkedHashSet按照插入的先后顺序, TreeSet 按照自然排序或者指定的排除方式排序(默认自然排序)
3. HashSet TreeSet LinkedHashSet都是线程不安全的。如果想保证线程安全, 使用Collecions.synchronizedSet(new HashSet())
4. 效率
HashSet的性能总是比TreeSet好(特别是比较常用的添加、查询元素等操作),因为TreeSet需要额外的红黑树算法来维护集合元素的次序 LinkedHashSet 按照插入的先后顺序排序, LinkedHashSet,对于普通插入、删除操作,LinkedHashSet比HashSet要略微慢一点;这是由维护链表所带来的额外开销所赵成的,不过,因为有了链表,遍历LinkedHashSet会更快