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

    一,哈希表(HashTable)简述
      
    在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值 对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为 object类型,所以Hashtable可以支持任何类型的key/value键值对.
     

    二,哈希表的简单操作
    在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
    在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
    从哈希表中移除所有元素:HashtableObject.Clear();
    判断哈希表是否包含特定键key:HashtableObject.Contains(key);


    Java中的对比(注意:C#中并没有hashmap
    Hashtable和HashMap的区别:

    1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。
    2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。
    3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。
    4.HashTable使用Enumeration,HashMap使用Iterator。 以上只是表面的不同,它们的实现也有很大的不同。
    5.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。
    6.哈希值的使用不同,HashTable直接使用对象的hashCode

  • 相关阅读:
    容器占用空间的小问题
    一个ipv4到ipv6的移植问题
    一个linux内核模块移植到低版本时发生的异常
    一个发包乱序问题记录
    一个docker镜像中的目录删除不了问题
    C/C++(共用体与枚举)
    C/C++(数据结构栈的实现)
    C/C++(结构体)
    C/C++(内存管理)
    C/C++(指针数组)
  • 原文地址:https://www.cnblogs.com/zhxhdean/p/2043115.html
Copyright © 2011-2022 走看看