类重写了equals()方法也必须重写hashcode()方法,否则会导致该类无法与基于散列值的集合(HashMap、HashSet、HashTable)一起正常使用。

hashcode()方法遵循的原则:

1、同一个对象多次调用hashcode(),返回的结果必须相等。
2、两个对象equals()方法相等,hashcode()也必须相等。
3、两个对象equals()方法不等,hashcode()不要求必须不等,但是应尽可能的分散以提高散列表的效率 如何重写hashcode(): 1.给int变量赋值
2.为对象中每个有意义的字段计算出一个散列码
3.合并
4.返回结果
5.验证结果,确保相同的对象有相同的散列码 demo: public class Test {
private String s = null;
private int id = 0;
.
.
.
public int hashCode() {
int result = 17;
result = 37 * result + s.hashCode();
result = 37 * result + id;
return result;
}
}

最新文章

  1. No plugin found for prefix ‘jetty’ in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories
  2. 第 1 章 jQuery EasyUI 入门
  3. spring mvc 深入学习
  4. 洛谷P1901 发射站
  5. Beginning Android 4 中 Demo Basic/Switch 的问题.
  6. HDU 1542 Atlantis(线段树扫描线+离散化求面积的并)
  7. DATASNAP为支持FIREDAC而增加的远程方法的数据类型TFDJSONDataSets
  8. UISegmentedControl UISlider
  9. Android 圆形背景shape定义
  10. 解决Sublime Text3莫名的中文乱码问题
  11. 使用Java创建RESTful Web Service(转)
  12. Minigui3.0 自定义遥控输入引擎
  13. ASP.NET应用程序的生命周期
  14. js打开新窗口,打开新窗口屏蔽工具栏和地址栏,窗口按规定大小显示
  15. python 对象存储OSS 阿里云
  16. IntelliJ IDEA的main方法,for循环,syso的快捷键
  17. Linux系统安装和网络配置
  18. es6 javascript对象方法Object.assign() 对象的合并复制等
  19. python使用os.listdir和os.walk获得文件的路径
  20. WebSocket原理与实践(四)--生成数据帧

热门文章

  1. [LUOGU] P2704 炮兵阵地
  2. 深入Linux内核架构——锁与进程间通信
  3. 宝塔nginx配置
  4. CentOS 6.5 x64 安装jdk8
  5. iptables之FORWARD转发链
  6. 五、PL/SQL循环、游标、函数和过程
  7. C#中为什么不能再方法里定义静态变量(Static)
  8. [luoguP1835] 素数密度_NOI导刊2011提高(04)(素数筛)
  9. 约分差束 例题 ZOJ 2770 火烧连营
  10. 【BZOJ1834】network 网络扩容(最大流,费用流)