Java集合(四)Set接口
Set接口继承自Collection,Set接口中没有新增的方法,方法和Collection保持完全一致,前面在List的学习方法,在Set中仍然适用。
Set容器特点:无序,不可重复。无序指Set中的元素没有索引,我们只能遍历查找。不可重复指不允许加入重复的元素。更确切地讲,新元素如果和Set中某个元素通过equals()方法对比为true,则不能加入,甚至Set中也只能放入一个null元素,不能多个
Set常用实现类有:HashSet,TreeSet等,我们一般使用HashSet
HashSet集合
HashSet是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能
HashSet是Set接口的一个实现类,他所存储的元素是不可重复的,并且元素都是无序的。当向HashSet集合中添加一个元素时,首先会调用该元素的hashCode()方法来确定元素的存储位置,然后再调用equals()方法来确保该位置没有重复元素。Set集合与List集合存取元素的方式都一样。
TreeSet集合
TreeSet 是 Set 接口的另一个实现类,它内部采用平衡二叉树来存储元素,这样的结构可以保证 TreeSet 集合中没有重复的元素,并且可以对元素进行排序。所谓二叉树就是说每
个节点最生有两个子书点的有序树,每个节点及其子节点组成的树称为子树,通常左侧的节点称为“左子树”,右侧的节点称为“右子树”,其中左子树上的元素小于它的根节点,而右子树上的元素大于它的根节点。
TreeSet有一些特有的方法:
举例: