为什么Set元素是不重复的?是如何去重复的?
对于有值特性的,Set集合可以直接判断进行去重复。例如数字1,2,本身就有值特性。对于引用数据类型的类对象: set集合会让两两对象,先调用自己的hashCode()方法得到彼此的哈希值(所谓的内存地址) 然后比较两个对象的哈希值是否相同,如果不相同则直接认为两个对象不重复。 如果哈希值相同,会继续让两个对象进行equals比较内容是否相同,如果相同认为真的重复了 如果不相同认为不重复。
如果希望set集合认为两个自定义对象内容一样就是重复了,必须在自定义对象中使用重写的hashcode和equals方法
转载请注明原文地址:https://ipadbbs.8miu.com/read-19602.html