TreeSet底层实际是用TreeMap实现的,内部维持了一个简化版的TreeMap,通过key来存储Set的元素, 而value是一个统一的object对象,
TreeSet内部需要对存储的元素进行排序,因此,我们对应的类需要实现Comparable接口。这样,才能根据compareTo()方法比较对象之间的大小,才能进行内部排序。
因为不允许重复,要通过hash和equals方法比较是否相等,所以要覆写这两个方法。否则无法根据自己逻辑实现相等,只能按照地址值比较是否相等。
TreeSet中不能放入null元素。因为null没有equals方法比较。
时间复杂度log(N)