Hashtable类
  Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。
  添加数据使用put(key, value),取出数据使用get(key),这两个基本操作的时间开销为常数。
Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。
使用Hashtable的简单示例如下,将1,2,3放到Hashtable中,他们的key分别是”one”,”two”,”three”:
    Hashtable numbers = new Hashtable();
    numbers.put(“one”, new Integer(1));
    numbers.put(“two”, new Integer(2));
    numbers.put(“three”, new Integer(3));
  要取出一个数,比如2,用相应的key:
    Integer n = (Integer)numbers.get(“two”);
    System.out.println(“two = ” + n);
  由于作为key的对象将通过计算其散列函数来确定与之对应的value的位置,因此任何作为key的对象都必须实现hashCode和equals方 法。hashCode和equals方法继承自根类Object,如果你用自定义的类当作key的话,要相当小心,按照散列函数的定义,如果两个对象相 同,即obj1.equals(obj2)=true,则它们的hashCode必须相同,但如果两个对象不同,则它们的hashCode不一定不同,如 果两个不同对象的hashCode相同,这种现象称为冲突,冲突会导致操作哈希表的时间开销增大,所以尽量定义好的hashCode()方法,能加快哈希 表的操作。
  如果相同的对象有不同的hashCode,对哈希表的操作会出现意想不到的结果(期待的get方法返回null),要避免这种问题,只需要牢记一条:要同时复写equals方法和hashCode方法,而不要只写其中一个。
  Hashtable是同步的。

Hashtable类相关推荐

  1. java哈希_Java Hashtable 类

    Java Hashtable 类 Hashtable是原始的java.util的一部分, 是一个Dictionary具体的实现 . 然而,Java 2 重构的Hashtable实现了Map接口,因此, ...

  2. C#数组和集合专题4(Hashtable类)

    四.Hashtable类 ①.Hashtable概述 通过Hashtable类将数据作为一组键值对来存储,这些键值对是根据编码来组织的,可以将键作为索引器来获得对应值的对象. Hashtable对象中 ...

  3. Lession11 集合和泛型(ArrayList方法、Arraylist类、ArrayList添加对象、ArrayList长度、HashTable类、Hashtable类练习-----)

    目录 ArrayList方法: ArrayList添加对象: Arraylist类: ArrayList长度: HashTable类: Hashtable类练习: IComparable泛型接口排序: ...

  4. 零基础学Java_Map接口、HashMap 类、HashTable 类、TreeMap 类(整理总结)

    文章目录 一.集合的框架体系 1. 常用集合接口概述 2. 常用 Collection 集合的实现子类 3. 常用的 Map 图的实现子类 二.Map 接口 1. Map 接口的特点 2. Map 图 ...

  5. HashTable类模板_C++

    好久没看数据结构了,今天终于要用到hash,整理一下写了个hash类模板 template<typename T>class DataType { public: T key;DataTy ...

  6. 学用 ASP.Net 之 System.Collections.Hashtable 类与 DictionaryEntry 结构

    DictionaryEntry 是包含 Key / Value 一对值的简单结构; Hashtable(哈希表)是一组 Key / Value 的集合, 准确地讲是一组 DictionaryEntry ...

  7. STL之hashtable源代码剖析

    // Filename: stl_hashtable.h// 本实作的hashtable採用的是开链法, 其内存布局例如以下// 对于产生哈希冲突的结点, 我们採取在其位置维护一个链表才处理之 // ...

  8. HashMap和Hashtable及HashSet的区别

    Hashtable类     Hashtable继承Map接口,实现一个key-value映射的哈希表.任何非空(non-null)的对象都可作为key或者value.     添加数据使用put(k ...

  9. 哈希表(HASHTABLE)

    原文地址:http://www.cnblogs.com/abatei/archive/2009/06/23/1509790.html C#中实现了哈希表数据结构的集合类有: (1) System.Co ...

最新文章

  1. 链表问题16——单链表的选择排序(python版本)
  2. AA065VD数据线连接错位的现象及分析总结
  3. 如何删除springboot中的子项目
  4. poj 2696 A Mysterious Function
  5. datastage配置jdbc_DataStage 错误集(持续更新)
  6. MySQL入门 (三) : 运算式与函式
  7. python从入门到精通需要多久-Python从入门到精通
  8. DDMF PluginDoctor Mac - 插件分析器音频质量测试
  9. c语言遗传算法在求解tsp问题,C语言遗传算法在求解TSP问题设计.doc
  10. pe下bootice修复Linux引导,快启动pe工具之bootice引导修复工具使用教程
  11. c语言 从文件中读取车牌,输入一个车牌号写入文件,找出所有后四位是一个完全平方数的车牌号并输出
  12. 百度地图开放平台web api 获取某项目方圆一公里的poi信息
  13. 深信服安服实习生面试心得
  14. 软件测试字节跳动头条项目面试,字节跳动|今日头条面试经验分享
  15. 火狐浏览器打开书签 不要在新页面打开书签
  16. Java Vector API的使用测试
  17. android 统一推送平台,工信部实验室成立安卓统一推送联盟:推送服务将实现统一...
  18. 各个版本的python在windows上如何安装pywin32
  19. python幂函数无序分布_Python:从幂律分布中生成随机数
  20. 寄存器和存储器的区别?

热门文章

  1. web 平台搭建-LAMP-源码包(CentOS-6)
  2. 命令行参数tail c语言,osg学习笔记2, 命令行参数解析器ArgumentParser
  3. 如何通过三视图判断立方体个数_如何看股票市盈率?怎么通过市盈率判断股票?...
  4. python 判断中文标点符号_Python入门编程题库27--生成随机密码
  5. python下的橡皮线_python下载吴恩达deep learning编程习题
  6. java 变量作用域 c语言_java - 数据结构 c语言 作用域问题
  7. php reactphp wss_php无限级分类 - ▄︻┻┳000000000000000000000000000000000000 - OSCHINA - 中文开源技术交流社区...
  8. 7-11 分段计算居民水费 (C语言)
  9. 从小到大排列的数组中查找x,若x存在则删除,若不存在则添加,修改后的数组仍然有序
  10. MIC4680-5.0YM-TR详细资料