浅析HashSet和TreeSet的区别及底层实现
2019-05-09 本文已影响0人
柒浅丶Belief
HashSet:存储无序,无索引,元素不可重复,可存储null,底层实现为创建一个HashMap,取HashMap的键作为数据存储
需要重写hashcode和equals方法来保证值的唯一性,添加,删除和 HashSet 包括的方法的持续 时间复杂度是 O(1) 。
TreeSet:存储为自然排序,无索引,元素不可重复,不可存储null,底层是创建一个继承自SortedMap的NacigableMap,引用指向TreeMap;
TreeSet的底层实现依赖Comparable和Comparetor方法实现规则进行自然排序,添加,删除和 TreeSet 包含的方法的持续时间复杂度 是 O(logn) 。