一组如何知道输入的值是重复的?我知道set忽略了重复的值,但它怎么知道重复的值呢?
答案 0 :(得分:0)
首先搜索集合中输入的值。如果搜索返回该组的元素等于输入的值,则不会插入该元素。
此搜索的执行方式取决于Set
实施。简单地说,即HashSet
将使用输入值的hashCode()
方法在其基础数组中查找存储桶,然后输入值equals()
方法来检查驻留在该存储桶上的元素之间的相等性。对于TreeSet
,使用Comparator
。
简而言之,搜索Set
是否包含值的算法取决于其实现。