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

    Hashtable和HashMap相同点:

    1. 它们都是存储键值对(key - value)的散列表,而且都是采用链地址法 实现的。
    存储思想:通过 table 数组存储,table 数组是 Entry 类型的,每个table 数组最终都存储的是一个单向链表,链表中的每个节点都存储的键值对(key - value)。
    2. 添加键值对:通过 key 计算出哈希值,再计算出数组的索引,根据索引去遍历单链表,如果链表中已经存在这个key 值,则覆盖原来的value,否则,加入新的节点。
    3. 删除键值对: 通过 key 计算出哈希值,再计算出数组的索引,根据索引去遍历单链表,从单链表中删除这个键值对。
    HashMap 和 HashTable 判断两个 key 和 value 相等的标准相同

    Hashtable和HashMap不同点:
    (1)基类不同:HashTable基于Dictionary类,而HashMap是基于AbstractMap。
                               Dictionary是什么?它是任何可将键映射到相应值的类的抽象父类,而AbstractMap是基于Map接口的骨干实现,它以最大限度地减少实现此接口所需的工作。
    (2)null不同:HashMap可以允许存在一个为null的key和任意个为null的value,但是HashTable中的key和value都不允许为null。
    (3)线程安全:HashMap时单线程安全的,Hashtable是多线程安全的。
    (4)遍历不同:HashMap仅支持Iterator的遍历方式,Hashtable支持Iterator和Enumeration两种遍历方式
  • 相关阅读:
    Storm:分布式流式计算框架
    GreenPlum:基于PostgreSQL的分布式关系型数据库
    Hive和SparkSQL: 基于 Hadoop 的数据仓库工具
    Linux网络子系统
    Python标准模块--multiprocessing
    Python标准模块--built-ins函数
    Python标准模块--threading
    Python标准模块--import
    Python标准模块--os
    Python标准模块--argparse
  • 原文地址:https://www.cnblogs.com/chenjiahao9527/p/10904318.html
Copyright © 2011-2022 走看看