zoukankan      html  css  js  c++  java
  • HashMap和Hashtable的区别

    最近刚结束的OA子项目,我带的几个同学在做项目的时候,都采用的Hashtable 来进行数据的传递,而我平常喜欢用HashMap,可能是习惯了,以前在往里面存null的时候,没有报错,但是在Hashtable里面却报空指针异常,由于经验比较少,当时在这行代码上面纠结了半天,已在在想,存null应该不会报错呀,虽然表面这么想,但是心里已经知道自己错了,以前在刚接触Map接口的时候就知道这个问题,后来用if进行判断存,结果就不报错了,果不其然,确实Hashtable,不允许空(null)键值(key),而HashMap允许空(null)键值(key,由于非线程安全,效率上可能高于Hashtable

    HashMapHashtablecontains方法去掉了,改成containsvaluecontainsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类,而HashMapJava1.2引进的Map interface的一个实现。

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

    HashtableHashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

  • 相关阅读:
    关于链表的代码
    c++中的友元函数
    javaweb笔记全套
    包装类、object、单例模式、final、抽象类
    Linux变量内容的删除、代替与替换
    2014年工作中遇到的20个问题:181-200
    Qt中 QString 和int,double等的转换
    jsp学习笔记总结
    工作日志2014-07-04
    Maple入门使用教程
  • 原文地址:https://www.cnblogs.com/rench/p/2121111.html
Copyright © 2011-2022 走看看