- 在一般的应用中你不需要了解hashCode的用法,但当你用到HashMap,HashSet等集合类时要注意下hashCode。
你想通过一个object的key来拿HashMap的value,HashMap的工作方法是,通过你传入的object的hashcode在内存中找地址,当找到这个地址后再通过equals方法来比较这个地址中的内容是否和你原来放进去的一样,一样就取出value。hashCode()方法使用来提高Map里面的搜索效率的,Map会根据不同的hashCode()来放在不同的桶里面,Map在搜索一个对象的时候先通过hashCode()找到相应的桶,然后再根据equals()方法找到相应的对象.要正确的实现Map里面查找元素必须满足一下两个条件:
(1)当obj1.equals(obj2)为true时obj1.hashCode() == obj2.hashCode()必须为true
(2)当obj1.hashCode() != obj2.hashCode()为true时obj.equals(obj2)必须为false
相关文章
- 03-28JSON 与 对象 、集合 之间的转换
- 03-28JSONObject的问题- 在用JSONObject传参到controller接收为空白和JSONArray添加json后转string不正确
- 03-28删除JSONObject value为空的属性
- 03-28遇到的坑 ----jsonObject篇
- 03-28net.sf.json的常用api
- 03-28net.sf.json.JSONObject对时间戳的格式化处理
- 03-28清空DateTimePicker控件的好方法
- 03-28GitLab的Webhook配置和开发
- 03-28Eclipse的中文字体设置
- 03-28eladmin后台管理系统(后端)——登录请求的实现