首页 > 代码库 > 集合类hashCode()方法和equals()方法
集合类hashCode()方法和equals()方法
1、散列码:
2、利用哈希码向集合中插入数据的顺序? 3、什么时候重写hashCode()方法?
5、什么容器必须的重写equals方法和hashCode方法?
Object中的HashCode方法会返回该对象的的内存真实地址的整数化表示,这个形象的不是真正抵制的整数值就是哈希码。
向HashSet中添加对象时,HashSet先通过该对象的HashCode()计算出相应的桶,然后再根据equals()方法找到相应的对象,如果容器中已存在该对象则不再添加,如果不存在,则添加进去。
String和Integer这些Java自带的类都重写了hashCode()方法,如果String和Integer new出来的对象的内容是一样的,则这些对象的hashCode返回值也是一样的,尽管这些对象占用的哦是不同的内存
4、怎么重写hashCode()方法和equals()方法:
必须同时实现equals()方法 和 hashCode() 方法,只要有任意一个方法没有实现
如果程序员希望自己定义的类对象,占用不同的哦内存空间时,但内容却是一样的对象调用hashCode方法返回值是一样的,则程序员必须自己重写hashCode()方法,如本程序的B类
必须同时实现equals()方法 和 hashCode() 方法,只要有任意一个方法没有实现
装入时就会出现重复元素
Hashtable HashSet HashMap都必须的同时实现equals()方法和hashCode()方法,TreeSet和TreeMap则不需要实现equals()方法和hashCode()方法
集合类hashCode()方法和equals()方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。