以前对hashset的理解很少 只知道不能存储重复数据 但是对里面的存储原理没有了解过 直到我遇到一道面试题
直接给我干蒙蔽了 简单了解一下过后才知道 Hashset的底层是基于hashmap实现 根据我自己的理解
这个所谓的不能重复指的不是某个对象不能重复 而是其hashcode不能重复 举个例子 假如emali类的两个对象e1 e2,它们地址虽然不一样,但是属性一样时 hashcode就相同 所以执行add(e1)后再执行add(e2)就会return false;而当e1添加完,修改e1某个属性 可以再次添加,此时set中有两个e1元素,地址和属性都相同,但是hashcode不相等。
以上是我的浅薄理解 如果有错误请大佬指正
关于hashset的contians函数的新认识
于 2024-03-01 23:47:33 首次发布