Set只是一个接口,下面有众多的实现类,每个类的内部数据结构都不同,所以判断方法也
不一样,使用频率较高的有两个,一个是HashSet,它是通过自己的hashCode()方法得到哈希值,
来确定在HashSet集合中的位置。将元素存入HashSet集合时,会计算对象的哈希值来找到对象应
该放置的位置,如果该位置已有对象存在(它们的哈希值相同),那么会继续使用equals()方法来判断
这两个对象是否相同,如果相同,则不会存入集合,如果不同,则会在已有对象的位置上顺延一位存储该对象。
另一个是TreeSet,是通过自定义比较器来实现TreeSet集合对元素的排序的。 |