如何设计时间日期类的hashcode() 自定义的类要作为key放入HashMap时需重载hashcode方法,听人说好的hashcode和次的性能差别很大,所以找到的别人设计的日期类的hashcode{ return getDay() + getMonth() * 256 + getYear() * 65536;}这么设计的原理是什么? 另外 我想设计一“日期时间”类 应该怎么设计hashcode()呢?先谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 xxxx year xx month xx day 00:00:00的time的hashCode() hash算法中允许两个不同的对象返回相同的hashcode,这个叫同义词,同义词越多hash算法的效率越低。利用hash算法进行检索,需要调用一次或多次hashcode方法,hashcode方法越简单,效率也会越高。因此设计原则有两个:1、同义词尽量少;2、hashcode方法尽量简单;另外,建议楼主复习一下基础知识,找本算法的书看看。 你找的那个hashcode方法非常好,可以保证不同的日期,得到的hashcode都不一样,效率非常高。如果想设计一个“时间日期类”的hashcode方法,那么除了要考虑“年月日”外,还需要考虑“时分秒毫秒”,自己设计很麻烦。其实,不用伤那么多脑筋,Java里已经有现成的,java.util.Date。 sorry for time you've been waitting for :)我是为了效率,可能会有上万个日期和时间就把它们分开自己设计了,又要作为hashtable的key还有,估计这个原date算法要乘这么大的8和32是为了对齐吧依葫芦画瓢,time的就用 getSecond() + getMinute() * 256 + getHour() * 65536 好什么呀,code越大牺牲的空间也越大吧,能把长度压缩才是好的方法,建议直接压缩成,从1970年1月1日开始的日子数(大小在2BYTE),或者从1970年1月1日起的秒数(大小在4BYTE) double类型的数据(返回类型也是double保留小数部分2位) 新手问一个书上的练习题 scjp 异常的几个问题 如何查找文件中的中文,并返回其行数 如何将String类型转化为Timestamp类型 高手请进 新手初学java,写了一个阶乘算法的程序,改了1个多小时不知道错在哪了 ~~~~~~看看这段代码?~~~~~ 一本JAVA问答式教程快看完了,可什么也不会写,救命呀!!! 如何提取出特定格式的字符串内容?? 在项目管理中,大家都用什么来进行bug/defect管理和跟踪?200分 求关于判断操作系统类型的java代码
的time的hashCode()
1、同义词尽量少;
2、hashcode方法尽量简单;另外,建议楼主复习一下基础知识,找本算法的书看看。