用户操作
[即时聊天] [发私信] [加为好友]
icecoolyID:iori97king
51943次访问,排名2083(-1)好友9人,关注者9
eternal is the most beautiful word
iori97king的文章
原创 52 篇
翻译 0 篇
转载 47 篇
评论 35 篇
icecooly的公告
最近评论
ddr667:朋友,咱先不说算法的问题,就看你数组里面的数字,那不是很明显的不够充分吧,而且你有用到双重for循环,内层循环是小于外层循环次数的,那么说这个外层循环决定了你内层循环的次数,这样一下来,如果外层循环数上百上千了,你那机器能有多块算出来啊,
liuyan8973:写的比较详细呵呵
我我:非常感谢~~~
mn:请问老大有V2.2 的注册码吗?上面的不好使。我的邮箱: trans_mn@126.com
domilic:我发现一个 www.rvaq.com 后台有绑定选项,只要你先将域名按要求解吸好。效果就跟独立的网站一样
文章分类
收藏
    相册
    me
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 HashTable和HashMap的区别收藏

    新一篇: 2007百度笔试题 | 旧一篇: java 面试大全

    HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。

    1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。

    2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。

    3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。

    4.HashTable使用Enumeration,HashMap使用Iterator。

    以上只是表面的不同,它们的实现也有很大的不同。

    5.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

    6.哈希值的使用不同,HashTable直接使用对象的hashCode,代码是这样的:
    int hash = key.hashCode();
    int index = (hash & 0x7FFFFFFF) % tab.length;
    而HashMap重新计算hash值,而且用与代替求模:
    int hash = hash(k);
    int i = indexFor(hash, table.length);

    static int hash(Object x) {
      int h = x.hashCode();

      h += ~(h << 9);
      h ^= (h >>> 14);
      h += (h << 4);
      h ^= (h >>> 10);
      return h;
    }
    static int indexFor(int h, int length) {
      return h & (length-1);
    }
    以上只是一些比较突出的区别,当然他们的实现上还是有很多不同的,比如
    HashMap对null的操作。

     

    发表于 @ 2007年09月13日 17:49:00|评论(loading...)|编辑

    新一篇: 2007百度笔试题 | 旧一篇: java 面试大全

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © icecooly