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算法都大概一样,所以性能不会有很大的差异。

  • 相关阅读:
    JSP数据交互(一)
    response.setHeader()用法
    Vue初步认识
    Socket初步了解
    DOM4j的修改删除方式
    多线程
    ArrayList和Vector区别
    集合框架(一)
    深入C#数据类型
    深入.NET框架
  • 原文地址:https://www.cnblogs.com/rench/p/2121111.html
Copyright © 2011-2022 走看看