Set接口
Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致。Set容器特点:无序、不可重复。
Set常用的实现类有:HashSet、TreeSet等,我们一般使用HashSet。
HashSet
HashSet是采用哈希算法实现,底层实际是用HashMap实现的(HashSet本质就是一个简化版的HashMap),因此,查询效率和增删效率都比较高。
TreeSet
TreeSet底层实际是用TreeMap实现的,内部维持了一个简化版的TreeMap,通过key来存储Set的元素。
TreeSet内部需要对存储的元素进行排序,因此,我们对应的类需要实现Comparable接口。这样,才能根据compareTo()方法比较对象之间的大小,才能进行内部排序。
使用TreeSet要点:
- 由于是二叉树,需要对元素做内部排序。
如果要放入TreeSet中的类没有实现Comparable接口,则会抛出异常:java.lang.ClassCastException。 - TreeSet中不能放入null元素。
Java自学网站