1.Set集合如何过滤重复元素
set集合是一种不允许重复元素的数据结构,当你插入一个重复元素时,插入元素不会成功但也不会发生报错;添加元素时Set集合的add方法会调用hashcode方法生成一个哈希值,然后和集合中的元素进行比较,如果哈希值相同则不添加元素,反之向Set集合中添加新元素
2.为什么重写hashCode()时,必须重写equals()?
哈希值不同的元素一定不同但是哈希值相同的元素不一定相同;因为哈希值的范围和int类型的大小是一致的会发生不同元素但是哈希值相同 eg:"set.add("重地")"和"set.add("通话")"的哈希值都是1179395;所有要重写equals()方法来判断元素内容的相同
3.为什么会出现哈希冲突
因为哈希值是有固定大小的,所以可能出现相同哈希值不同元素的情况,所有不能光用哈希值来判断元素内容的相同