Java Hashtable 接口

Hashtable是原始的java.util的一部分, 是一个Dictionary具体的实现 。

然而,Java 2 重构的Hashtable实现了Map接口,因此,Hashtable现在集成到了集合框架中。它和HashMap类很相似,但是它支持同步。

像HashMap一样,Hashtable在哈希表中存储键/值对。当使用一个哈希表,要指定用作键的对象,以及要链接到该键的值。

然后,该键经过哈希处理,所得到的散列码被用作存储在该表中值的索引。

Hashtable定义了四个构造方法。第一个是默认构造方法:Hashtable()

第二个构造函数创建指定大小的哈希表:Hashtable(int size)

第三个构造方法创建了一个指定大小的哈希表,并且通过fillRatio指定填充比例。

填充比例必须介于0.0和1.0之间,它决定了哈希表在重新调整大小之前的充满程度:Hashtable(int size,float fillRatio)

第四个构造方法创建了一个以M中元素为初始化元素的哈希表。

哈希表的容量被设置为M的两倍。Hashtable(Map m)

Hashtable中除了从Map接口中定义的方法外,还定义了以下方法:序号方法描述

1void clear( )

将此哈希表清空,使其不包含任何键。

2Object clone( )

创建此哈希表的浅表副本。

3boolean contains(Object value)

测试此映射表中是否存在与指定值关联的键。

4boolean containsKey(Object key)

测试指定对象是否为此哈希表中的键。

5boolean containsValue(Object value)

如果此 Hashtable 将一个或多个键映射到此值,则返回 true。

6Enumeration elements( )

返回此哈希表中的值的枚举。

7Object get(Object key)

返回指定键所映射到的值,如果此映射不包含此键的映射,则返回 null. 更确切地讲,如果此映射包含满足 (key.equals(k)) 的从键 k 到值 v 的映射,则此方法返回 v;否则,返回 null。

8boolean isEmpty( )

测试此哈希表是否没有键映射到值。

9Enumeration keys( )

返回此哈希表中的键的枚举。

10Object put(Object key, Object value)

将指定 key 映射到此哈希表中的指定 value。

11void rehash( )

增加此哈希表的容量并在内部对其进行重组,以便更有效地容纳和访问其元素。

12Object remove(Object key)

从哈希表中移除该键及其相应的值。

13int size( )

返回此哈希表中的键的数量。

14String toString( )

返回此 Hashtable 对象的字符串表示形式,其形式为 ASCII 字符 ", " (逗号加空格)分隔开的、括在括号中的一组条目。

实例

下面的程序说明这个数据结构支持的几个方法:import java.util.*;

public class HashTableDemo {

public static void main(String args[]) {

// Create a hash map

Hashtable balance = new Hashtable();

Enumeration names;

String str;

double bal;

balance.put("Zara", new Double(3434.34));

balance.put("Mahnaz", new Double(123.22));

balance.put("Ayan", new Double(1378.00));

balance.put("Daisy", new Double(99.22));

balance.put("Qadir", new Double(-19.08));

// Show all balances in hash table.

names = balance.keys();

while(names.hasMoreElements()) {

str = (String) names.nextElement();

System.out.println(str + ": " +

balance.get(str));

}

System.out.println();

// Deposit 1,000 into Zara's account

bal = ((Double)balance.get("Zara")).doubleValue();

balance.put("Zara", new Double(bal+1000));

System.out.println("Zara's new balance: " +

balance.get("Zara"));

}

}

以上实例编译运行结果如下:Qadir: -19.08

Zara: 3434.34

Mahnaz: 123.22

Daisy: 99.22

Ayan: 1378.0

Zara's new balance: 4434.34

java hashtable import_Java Hashtable 接口 - Java 教程 - 自强学堂相关推荐

  1. java properties api_Java Properties 接口 - Java 教程 - 自强学堂

    Java Properties 接口 Properties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串. Properties 类被许多Java类使用. ...

  2. java enumeration 创建_Java Enumeration接口 - Java 教程 - 自强学堂

    Java Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被 ...

  3. java直播教学开发接口,大量教程

    Java培训:Java应用程序开发中的SOLID设计原则SOLID指的是面向对象编程中的五条设计原则,旨在减少代码腐烂,提高软件的价值.功能和可维护性.坚实的原则有助于用户开发耦合较少的代 建议报名参 ...

  4. java bitset类_Java Bitset类 - Java 教程 - 自强学堂

    Java Bitset类 一个Bitset类创建一种特殊类型的数组来保存位值.BitSet中数组大小会随需要增加.这和位向量(vector of bits)比较类似. 这是一个传统的类,但它在Java ...

  5. java 处理 url_Java URL处理 - Java 教程 - 自强学堂

    Java URL处理 URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是 ...

  6. 自强学堂 java_Java File类 - Java 教程 - 自强学堂

    Java File类 Java文件类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等. File对象代表磁盘中实际存在的文件和目录.通过以下构造方法创建一个F ...

  7. java stack 类_Java Stack 类 - Java 教程 - 自强学堂

    Java Stack 类 栈是Vector的一个子类,它实现了一个标准的后进先出的栈. 堆栈只定义了默认构造函数,用来创建一个空栈. 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法. ...

  8. java new Filereader_Java FileReader类 - Java 教程 - 自强学堂

    Java FileReader类 FileReader类从InputStreamReader类继承而来.该类按字符读取流中数据.可以通过以下几种构造方法创建需要的对象. 在给定从中读取数据的 File ...

  9. java wirter_Java FileWriter类 - Java 教程 - 自强学堂

    Java FileWriter类 FileWriter类从OutputStreamReader类继承而来.该类按字符向流中写入数据.可以通过以下几种构造方法创建需要的对象. 在给出 File 对象的情 ...

最新文章

  1. ios 两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动
  2. CSAPP第7章家庭作业参考答案
  3. java sqlserver 2000_谁能救救我啊,关于JAVA连接SQLserver2000
  4. NHibernate初学者指南(2):一个完整的例子
  5. CTreeCtrl控件的使用小记
  6. JMM模型到并发编程
  7. java数组的实现_Java数组HashCode实现
  8. 中软python编码规范考试试题_卓越分享 | 如何写出一手漂亮的Python代码?
  9. 我的世界java村民繁殖_我的世界:1.14版本刷新几率小的五种村庄,没有村民咋回事?...
  10. 定了!苹果 10 亿美元收购英特尔调制解调器部门!
  11. mysql Load Data InFile 的用法
  12. 1.1 print输出语句(Python)
  13. java反射之 Field对象
  14. JAVA实现 剑指offer第二版 2
  15. CSS设置 background-image透明度小技巧
  16. 【Android】中微信抢红包助手的实现(代码整理)
  17. 5G学习-5G的基础概念
  18. 【随机区组设计和析因设计的区别】
  19. 如何利用Python实现工作中的自动化
  20. 解决Fluxion卡在Starting Captive Portal access point service...

热门文章

  1. Android开发:申请微信AppID的MD5(数字签名)格式bug
  2. 【Arc GIS 零基础教学】土地利用类型图的绘制方法
  3. 安卓音乐播放时微信视频微信语音电话进来音乐暂停播放
  4. Python Socket通讯
  5. 长文干货!走近人脸检测:从?VJ?到深度学习(上)
  6. 打不开regedit.exe、gpedit.msc和taskmgr.exe的解决方法
  7. QT实现串口调试助手(七):字体设置面板创建及窗体间传值
  8. 区块链软件开发公司 区块链技术对市场的意义
  9. 京东App秒杀抢购流程接口分析
  10. 时代博川服务器机柜型号,机柜外观要求与外形尺寸参数标准