Java 为什么Set元素是不重复的?是如何去重复的?

    技术2022-07-11  78

    为什么Set元素是不重复的?是如何去重复的?

    对于有值特性的,Set集合可以直接判断进行去重复。例如数字1,2,本身就有值特性。对于引用数据类型的类对象: set集合会让两两对象,先调用自己的hashCode()方法得到彼此的哈希值(所谓的内存地址) 然后比较两个对象的哈希值是否相同,如果不相同则直接认为两个对象不重复。 如果哈希值相同,会继续让两个对象进行equals比较内容是否相同,如果相同认为真的重复了 如果不相同认为不重复。

    如果希望set集合认为两个自定义对象内容一样就是重复了,必须在自定义对象中使用重写的hashcode和equals方法

    Processed: 0.024, SQL: 9