浅析HashSet和TreeSet的区别及底层实现

HashSet:存储无序,无索引,元素不可重复,可存储null,底层实现为创建一个HashMap,取HashMap的键作为数据存储


需要重写hashcode和equals方法来保证值的唯一性,添加,删除和 HashSet 包括的方法的持续 时间复杂度是 O(1) 。

TreeSet:存储为自然排序,无索引,元素不可重复,不可存储null,底层是创建一个继承自SortedMap的NacigableMap,引用指向TreeMap;

浅析HashSet和TreeSet的区别及底层实现_第1张图片
TreeSet的底层实现

依赖Comparable和Comparetor方法实现规则进行自然排序,添加,删除和 TreeSet 包含的方法的持续时间复杂度 是 O(logn) 。

你可能感兴趣的:(浅析HashSet和TreeSet的区别及底层实现)