hascode()和equals()的区别

来源:互联网 发布:mac怎么安装axure 编辑:程序博客网 时间:2024/06/05 05:08

理论知识点:

1.hashcode()是讲的两个对象的物理地址

2.equals()讲的是两个对象是否相同

简而言之:
1.equals()两个对象相同,那么hascode一定相同
2.hascode相同,那么对象不一定相同

那我们看看有什么区别?

比如我们要向一个集合中添加10001条数据并且保持数据不重复,常规思想我们都是来10000个equals(),那我们有什么优化可以解决不用10000个equals()来添加数据,我们可以通过先hashcode()判断物理路径是否相同,如果物理路径不相同,那么肯定不是同一对象,我们可以直接跳过添加到集合中,这应该算是一种优化吧!

思路 add data------->hashcode()判断----->equals()判断

hashcode()不同---->直接添加数据


原创粉丝点击