谁能给讲为什么要覆盖HashCode,equals,实现Comparable . 谁能给讲讲对像比较时为什么要覆盖HashCode,equals,实现Comparable .啊。详细点,本人初学。谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比较是不是一样总要有个规则,这个规则就是equals的实现了,否则就要用Object默认的方法, 但是默认的一般是不好用的. Comparable 是排序用的, 比较两个对象哪个排前面那个排后面仔细看看jdk的文档就ok equals()方法是判断两个对象是否一致的,如果不实现该方法,那么只能使用object默认的equals(),这个只有在两个对象是同一个对象,亦即 地址一样的情况下才返回true; Comparable接口是处理两个对象,排在前,排在后的问题的;实现hashcode()方法,是为了保证在hashtable和hashmap中使用该类的对象可以快速查找到,这牵涉到hashtable和hashmap的查找机制----先确定hashcode,再在这个集合中查找。总之,如果你的类是数据结构类,需要作比较,要用来排序,那就需要实现equals()和compareTo()方法;如果该类的对象要用在hashtable或hashmap中保存,那就需要实现hashcode()方法;反之,如果你的类,就是个方法类,那这几个方法都没必要实现,如java中的Collections类就没有实现这几个方法。 如何导入图片 Integer.parseInt(stdin.readline()) JAVA 里有这个指令吗 sql取出的数据与java字符串数据比较问题 一个String转换的问题 求java.io.EOFException的解决办法 java 不知有什么好,配置环境都配置半天也不能搞定,竟那么多人用它! TOMCAT的问题 我是该区做vc还是借这个机会转到java,请大家给个主意,今天就要做决定,是不是辞职 新手求教---------怎样下载JAVA开发环境 新手求助,望大神赐教! 关于Canvas的刷新问题 JAVA正则表达式中的小括号是做什么的?
Comparable 是排序用的, 比较两个对象哪个排前面那个排后面仔细看看jdk的文档就ok
总之,如果你的类是数据结构类,需要作比较,要用来排序,那就需要实现equals()和compareTo()方法;如果该类的对象要用在hashtable或hashmap中保存,那就需要实现hashcode()方法;反之,如果你的类,就是个方法类,那这几个方法都没必要实现,如java中的Collections类就没有实现这几个方法。