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接口中定义的方法外,还定义了以下方法:

序号

方法描述

1

void clear( )

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

2

Object clone( )

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

3

boolean contains(Object value)

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

4

boolean containsKey(Object key)

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

5

boolean containsValue(Object value)

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

6

Enumeration elements( )

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

7

Object get(Object key)

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

8

boolean isEmpty( )

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

9

Enumeration keys( )

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

10

Object put(Object key, Object value)

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

11

void rehash( )

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

12

Object remove(Object key)

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

13

int size( )

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

14

String 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哈希_Java Hashtable 类相关推荐

  1. java异常判断_Java异常类

    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...

  2. java file 工具_JAVA文件类工具

    FileUtil package cn.jiangzeyin.util.file; import org.springframework.util.Assert; import java.io.*; ...

  3. java inputstream子类_Java InputStream 类

    Java InputStream 类 在本教程中,我们将通过一个示例来学习Java InputStream类及其方法. java.io包的InputStream类是一个抽象超类,它表示字节的输入流. ...

  4. java printwriter实例_Java PrintWriter 类

    Java PrintWriter 类 在本教程中,我们将通过示例来学习Java PrintWriter及其print()和printf()方法. java.io包的PrintWriter类可用于以通常 ...

  5. java filewriter 编码_Java FileWriter 类

    Java FileWriter 类 在本教程中,我们将借助示例学习Java FileWriter及其方法. java.io包的FileWriter类可用于将数据(以字符为单位)写入文件. 它继承了Ou ...

  6. java file 实例_Java File类的详解及简单实例

    Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象. CanWrite():返回文件是否可写. CanRead():返回文件是否可读. Co ...

  7. java treemap 方法_Java TreeMap类

    TreeMap类使用树实现Map接口.TreeMap类提供了一种以排序顺序存储键/值对的有效方法,并允许快速检索. 注意,与哈希映射不同,树映射保证其元素将按升序键顺序排序. 以下是TreeMap类支 ...

  8. java 虚拟机 初始化_Java虚拟机 类初始化 阶段

    Java虚拟机使用某个类的过程,可分为七个阶段: 加载 - 验证 - 准备 - 解析 - 初始化 - 使用 - 卸载 本文只介绍在什么情况下对类进行初始化. Java虚拟机规范对何时进行类的初始化做了 ...

  9. java 查看文件属性_java File类获取文件属性详解

    你知道java File类获取文件属性方法吗?下面的文章要给大家讲解的就是这个方面的内容,希望下面的内容可以对你有所帮助哦. 在Java中获取文件属性信息的第一步是先创建一个File类对象并指向一个已 ...

最新文章

  1. java迭代器创建后mutx锁,java集合【5】—— Collections接口源码解析
  2. 通过libusb操作usb设备扫描二维码
  3. 第二节:比较DateTime和DateTimeOffset两种时间类型并介绍Quartz.Net中用到的几类时间形式(定点、四舍五入、倍数、递增)
  4. 转换背景色 html,html – CSS转换:淡化背景颜色,重置后
  5. 小程序开发(1)-之目录结构和文件说明
  6. shell学习之常用bash内置变量
  7. 如何:在 Windows 窗体 ListView 控件中启用平铺视图 【转载】
  8. android stl,Android NDK中的c++ STL
  9. 創建ASP組件修改《SERV-U》FTP 的密碼
  10. C#对接中国移动短信接口
  11. 程序人生-Hello的 P2P
  12. 剪辑神器,分享一个可以批量修改大量视频MD5值的工具
  13. ios屏幕尺寸和分辨率
  14. 【考研加油】所有上岸的考研人都有一个共同的特点,就是他们都参加考试了。2023考研加油。
  15. SpaceX证实从7月起部署第四个轨道壳 将发射348颗星链卫星
  16. 目标函数(object function),损失函数(loss function)以及代价函数(cost function)之间的关系与区别
  17. 短视频推荐算法过程分享,论如何针对推荐算法来优化短视频内容
  18. 如何入侵网页游戏服务器,游戏服务器被攻击了应该怎么办?如何保护游戏网站安全?...
  19. linux中标麒麟u盘制作,中标麒麟桌面操作系统龙芯版系统安装盘(U盘)制作方法
  20. [Unity实战]仅用2步-虚拟相机Cinemachine简易使用

热门文章

  1. opencv同时开启两个外接USB摄像头采集图像信息,并设置摄像头输出图像的分辨率
  2. 17.QT-事件处理分析、事件过滤器、拖放事件
  3. 在ZC702上运行Linux(4)-编译和使用U-Boot Linux
  4. OpenCV形态学变换函数morphologyEx()顶帽运算的使用
  5. day28:检测磁盘io|自定义时段查看tomcat 日记|打印城市名字|代码上线|统计网站并发量...
  6. WinForm连接数据库
  7. [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解
  8. WebService入门Demo
  9. 关于spring-mvc.xml的mvc:resources元素浅析。
  10. 日志插件 log4net 的使用