在前面一开始容器的综述(Collection容器(或者集合)的简述)里面,我们知道容器Collection主要有两个接口Collection接口和Map接口:
其中Collection接口的两个子接口是List和Set接口。
现在我们来学习Set接口:
Set接口继承自Collection,前面学过的List因为增加了索引,他是有序可重复的,因此增加了一些相关方法。
而Set接口由于是无序的,不可重复的,其中无序就指的是Set中的元素没有索引,我们只能遍历查找,这个就不像List的get啊add等方法是有index参数的;不可重复就是元素不可以重复,具体一点就是如果新元素和Set里面的已有的某个元素通过equals方法对比结果为true那就不能再加入了,包括null元素,也是不能重复的。
因此Set接口里面没有增加新方法,方法完全和Collection保持一致。常用的Set实现类有HashSet、TreeSet等,一般我们只用HashSet。
一、Set接口源码阅读
我们定义一个HashSet对象,然后打开Set的源码,可以看到他的outline: