散列码的作用 我知道散列码相等,就代表是同一个对象,但是我还想知道散列码的更多的知识,请高手们介绍一下.谢谢. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 hashCode相同不一定是一个对象,是一个多对一的关系,对象不同,有可能HashCode相同的,这个时候就要有冲突算法 apache有开源项目,override equals的时候不需要自己写. 我的理解是:“散列码”就是用来把一堆对象散到各自的队列里去的一种标识码。举个形象一点的例子,一年有 365 天,从 1 编号到 365,下面我定义一种编码方法,每个人按照他生日那天的编号作为他的标识码,这样,一群人每个人就会有一个标识码。这个标识码有什么用呢?好,下面我说,请所有单号的人站到一起,所有双号的人站在一起。此后,当我要找一个人的时候,如果知道他的编号是单号,那我只需要到前面一堆人里去找,查找效率提高了一倍。如果我说,请编号能被 16 整除的人站到一起,被 16 除余 1 的人站到一起,被 16 除余 2 的人站到一起…… 此后,当我要找一个人的时候,查找效率就会提高到 16 倍。这就是散列码。所以,一个好的散列码算法,配合一个适当的存储机制,就能够实现高效的存储管理。那么,不好的散列码算法会有多糟糕呢?比如,hashCode() 返回一个常量,那么,无论什么存储机制都会退化,所有的人都站在一堆里,查找效率无法提高。不过,也就只是影响效率,不会影响“正确性”,因为散列码的本性决定了,所有的算法都不应该假设两个不同的对象必须有不同的散列码。 看看HashMap和HashSet就知道他有啥用了。 TO King_Play: HashCode和HashMap或HashSet有联系吗? 我知道散列码相等,就代表是同一个对象?这句是错的!可以反过来说:如果是同一个对象或者equals的对象,那么散列码相同。 散列码在你使用HashSet或者HashMap的时候有用,你需要为自己的对象定义equals方法和hashCode方法。至于它的用处,maquan('ma:kju)的讲法可以帮助你理解。 像各位牛人求从J2SE到J2EE进阶的详细科目流程图。 多线程中阻塞问题 大侠们,说说你们的意见 在jsp里怎么插入一个能播放存在web项目里的avi格式的视频的播放器 急!!!同样的程序在c和java开发环境下结果为什么不同! 为什么这个方法两个变量没有呼唤呢?请教高手 [求助]关于定时执行任务 百思不得其解:类的成员怎么能创建所在类的实例呢?-- 进者有分 我想数据库中新增一条记录通知前台的程序显示,请问如何实现 求救:怎样在JAVA中调用telnet程序?(急用!!) 想请教一个关于反射(reflection)的问题 数组引用问题
这句是错的!可以反过来说:如果是同一个对象或者equals的对象,那么散列码相同。
至于它的用处,maquan('ma:kju)的讲法可以帮助你理解。