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

  • 相关阅读:
    圆上的整点
    学习笔记:用线性筛算不太常见的函数
    解题报告: luogu P1972
    解题报告: luogu P3907
    替罪羊树详解
    解题报告:luogu P2787
    解题报告:luogu P4170
    解题报告:luogu P4933
    10、.运维就是一场没有硝烟的战争
    九、模板层(三)
  • 原文地址:https://www.cnblogs.com/rench/p/2121111.html
Copyright © 2011-2022 走看看