zoukankan      html  css  js  c++  java
  • hashMap与hashTable

    哈希表由数组+链表组成,一个长度为16的数组中,每个元素存储的是一个链表的头结点。而HashMap和Hashtable就是哈希表结构。

    HashMap和HashTable
    数组的存储空间是连续的,占用内存严重,故空间复杂度很大,但是查找时间复杂度较小。数组的特点:寻址容易,插入和删除困难。
    链表的存储空间是离散的,占用内存比较宽松,故空间复杂度较小,但查找时间复杂度较大。链表的特点:寻址困难,插入和删除容易

    1 继承类不同:
    A.HashMap继承AbstractMap
    B.Hashtable继承Dictionary

    2 执行效率不同:
    A.HashMap是非线程安全的,是Hashtable的轻量级实现,效率较高
    B.Hashtable是线程安全的,效率较低

    3 put方法对key和value的要求不同
    A.HashMap允许Entry的key或value为null
    B.Hashtable不允许Entry的key或value为null,否则出现NullPointerException

    4有无contains方法
    A.HashMap没有contains方法
    B.Hashtable有contains方法

    注意:Hashtale是Syncchronize的,而HashMap是Asyncchronize的,当多个线程访问Hashtable时,Hashtable不需要自己为它的方法实现同步;而当多个线程访问HashMap时,需要通过Collections.synchronizedMap来同步HashMap

  • 相关阅读:
    使用virtualenv搭建python3的环境
    Linux/unix inode
    转:进程间通信方式
    保研复试上机——数据库
    转:mysql grant
    mysql 查询结果创建表
    279. Perfect Squares
    Mybatis中javaType和jdbcType对应和CRUD例子
    mysql explain
    91. Decode Ways
  • 原文地址:https://www.cnblogs.com/labimeilexin/p/7357258.html
Copyright © 2011-2022 走看看