Hashtable怎样实现快速的getKeyByValue(Object value)? 有一个Model(内含Hashtable),有时候需要根据key找value,有时候又需要根据value找key。这样高效率的使两个方向的查找都比较快? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建两个hashtable 一个key value 一个value key用这前判断一下,那个key存在,就取哪个 Hashtable内部是一个数组来的,保存了一系列Entry对象(就是封装了Key和Value的一个对象,和放在同一个数组位置的下一个Entry对象引用)首先得到int hashCode = key.hashCode();然后 hashCode % arraySize得到这个Entry所在的数组位置然后在这个位置中的Entry,判断Key是否相等,如果不相等则找Entry.nextEntry直接为空为止从上面就可以看出来,Hashtable的原理就是每一个对象都实现的hashCode来快速定位存放位置因为在JDK中规范指出:a.equals(b) 一定可以推出 a.hashCode() == b.hashCode(); 反之不一定成立。 session失效,jsp页面怎样给出提示???????????? 看coreJava遇到的一个问题? Jtalbe疑惑 关于类型转换的问题 java中如何实现背景图片!! 【敬请】各位高手帮忙看一下这个错误怎么改?在线等!!!!!!!!!!!!!! 2个swing的基本问题? 我的声音程序,为什么 不能播放啊 JNI 访问对象域, 搞了半天没成功!急! 哪里有《java核心技术〉(第二版)高级编程片的下载? 关于生成安装程序的问题,需要用到第三方API,如comm。高分求解 java io优化处理 求代码
用这前判断一下,那个key存在,就取哪个
首先得到int hashCode = key.hashCode();
然后 hashCode % arraySize得到这个Entry所在的数组位置
然后在这个位置中的Entry,判断Key是否相等,如果不相等则找Entry.nextEntry直接为空为止
从上面就可以看出来,Hashtable的原理就是每一个对象都实现的hashCode来快速定位存放位置
因为在JDK中规范指出:
a.equals(b) 一定可以推出 a.hashCode() == b.hashCode(); 反之不一定成立。