上次看了个Java题目。
HashSet加入元素时会检查是否有元素与要加入的元素相等(Hash值相同)。相同不加入!
那么当通过改变加入元素的某些属性,改变了元素的Hash值,使它与现有其他元素Hash值
相同会怎么样?
这是个令人迷惑的问题。
呵呵!看了java的源码!一切都明白了!
HashSet是通过HashMap实现的。当某个元素加入时,此元素的当前hash值会被记录在一个
HashMap的属性中,不会改变了!而元素加入HashSet时等改变HashSet的操作,检查的是
被记录在HashSet的HashMap属性中的Hash值。
呵呵!看看源码立马清楚了!有源码真好!