HashSet和TreeSet的分析

来源:互联网 发布:python应用领域 编辑:程序博客网 时间:2024/05/17 02:44
Set的主要实现类有: ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet
其中CopyOnWriteArraySet是以CopyOnWriteArrayList来实现,LinkedHashSet继承自HashSet,所以这里主要说下HashSet和TreeSet.

关键特点
HashSet是以HashMap为基础来实现,TreeSet是以TreeSet基础来实现,主要是以对应的map来存储数据,简单来说,HashSet和TreeSet都是不可以允许重复数据,并且两者都是不同步,需要以 Set s = Collections.synchronizedSet(new HashSet(...));来实现同步。

相关的信息可以以对应的构造方法来查看:
public HashSet() { map = new HashMap<>(); }
public TreeSet() { this(new TreeMap<E,Object>()); }

简单来说,HashSet拥有HashMap的特点,TreeSet也拥有TreeMap的特点
原创粉丝点击