问题补充说明:hashcode 很多网上都说的不明不白的,很糊涂,我想知道他到底有什么用,举个代码例子吧! 谢谢~~
用最简单的方法来说,hashcode就是一个签名。当两个对象的hashcode一样时,钱立法笑草送第给信起林两个对象就有可能一样。如果不一样的话两个对象就肯定不一样。
一般用hashcode来进行比宣底较两个东西是不是一样的,可以很配通容易的排除许多不一样的东西。
最常用的地方就是在一堆东西里找着视季路一个东西。先用你要找的东西的hashcode和所有东西的hashcode比较,如果不一样的话就肯定不是你要找的东西。如果一样的话就很可能是你要找的顶充东西。然后再进行仔细的比较两个东西是不是真的一模一样。
//一个不能加重复内容的容器
classSet{
Object[]objs=newObject[10论盟卷编载晚讨前];//装东西的的数组
intsize阻热脱况场计宁参女方期=0;//已经有几个东西
运求固第//添加新东西,成功的话返回true,如果已经有了的话返回false
booleanadd(Ob例并准必组保味况且jecto){
for(inti=0;i<siz主e;i++){//搜索所有已经加进来的对象
if(objs[i].hashCode()==o.hashCode())//如果hashcode一样的话就说明脸松露飞两个有可能是一样的
if(objs[i].equals(o))returnfalse;//仔细的确认一下是不是真的一样,如果一样的话就不加起妒斗防鲜级小入这个对象
}
objs[size++]=o;//确认没有过这个东西,加入数组
returntrue;
}
}
当使用这个类的时候要确保两个一样的东西的hashcode肯定是一样的。两个不同的东西的hashcode可以是一样的,不过这样会减慢运行速度,所以尽量避免(也就是所谓的碰撞)。
标签:hashcod,来自