1.Set集合如何过滤重复元素?
Set集合是基于Map集合实现的,值存放在Map集合key的位置,Map集合中存入数据前会根据hashCode和equals方法比较,确定了两元素不同,再将元素存入集合中。
2.为什么重写hashCode()时,必须重写equals()?
equals方法中比较两元素会先比较hash值,hash值不相等的两元素一定不等,hash值相等的两元素可能相等,但equals方法判断相等则一定相等,所以在判断hash值相等后要用equals方法进一步比较,这样可以大幅提高比较效率。
3.为什么会产生哈希冲突?
hash值是通过一定计算后得到的一个int类型数据,而int类型数据是有范围的,无限个数据存入有限的范围中所以会出现哈希冲突。