java HashSet类添加元素的问题

java HashSet类添加元素的问题,第1张

HashSet 比较两个对象是否相同的机制是 1.hash 2. == 3.equals()

第一步就是比较两个对象的hash值是否相同(注意这里的hash值是经过处理的,为了使散列更均匀)

hash值相同的就会散列到一组 不相同就会散列到不同的组(此时就不会再继续比较了,因为在不同组hashset认为他们就是不同的对象)

第二步 如果hash值相同 则进行连等判断 即比较内存地址是否相同 如果不相同那么hashset就认为他们肯定不是相同的对象 如果内存地址相等(这一步最主要的目的其实就是删除元素的时候判断)那么进行第三步

第三步 如果equals返回相同 那么他们就是彻彻底底的相同的对象 不能添加到set里,如果返回不同那么他们就不是彻底的不相同 就可以添加到一个set里

楼主明白了吧,纯手打,希望对你有帮助

HashSet不允许元素重复。所以你String数组中重复String将不被添加进HashSet。

代码大意:

遍历你的数组逐个添加到HashSet中,然后拿出HashSet中元素赋值给String数组。

数组长度会变短,删除了重复String吗。

那个警告没事,是List泛型的警告吧。如List list=new ArrayList()现在IDE都会报警告,要加泛型,也就是List中放置元素类型.如List<Integer>list=new ArrayList<Integer>()就没事了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11939125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存