首页 > Java > java教程 > 正文

Java 中的哈希表

WBOY
发布: 2024-08-30 15:47:42
原创
953 人浏览过

在 Java 中,哈希表用于存储将每个键映射到特定值的键值对。与 HashMap 不同,它是同步的。此外,Hashtable 不允许空值或空键,并且也包含唯一元素。正如已经说过的,哈希表包含一个经过哈希处理并获得哈希码的键。然后,此代码将用作存储特定值的索引。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

哈希表声明:

Hashtable 类可以使用以下语法声明。

public class Hashtable<Key,Value> extends Dictionary<Key,Value> implements Map<Key,Value>, Cloneable, Serializable
登录后复制

哈希表的构造函数

可以使用参数化和非参数化构造函数创建哈希表。

  • Hashtable():将构造一个新的空哈希表,负载因子为 0.75,初始容量为 11。这里初始容量和负载因子是默认值。
  • 哈希表(int initCapacity):将使用上述初始容量和负载因子 0.75 构建一个新的空哈希表。这里,只有负载因子是默认的。
  • 哈希表(int initCapacity,float loadfact):将使用上述初始容量和负载因子构建一个新的空哈希表。
  • 哈希表(Map extends Key,? extends Value>t):将使用与上述映射相同的映射构造一个新的哈希表。

哈希表的方法

以下是HashTable中常用的方法

  • clear(): 此哈希表将被清除,没有剩余键。
  • contains(Object val ): 此方法测试是否有任何键映射到哈希表中的值 val。
  • 克隆(): 将为哈希表创建浅表副本。
  • 包含Key(Object k ): 此方法测试指定的键 k 在哈希表中是否可用。
  • 包含一个值(对象 val ):如果哈希表将 1 个或多个键映射到提到的值 val,则将返回 true。
  • 元素(): 将返回值的枚举。
  • keys(): 将返回键的枚举。
  • entrySet(): 将为地图上存在的映射返回一个集合视图。
  • 等于(对象o):地图将与指定对象进行比较。
  • get(Objectkey):如果指定的键映射到任何值,则会返回。如果没有映射任何内容,将返回 null。
  • isEmpty(): 此方法检查哈希表是否未将键映射到任何值。
  • keySet(): 将为地图中存在的键返回集合视图。
  • size(): 将返回哈希表中键的数量。
  • hashCode(): 将为地图返回哈希代码值。
  • 输入K 键,Val 值):键k 将被映射到哈希表中的值 val。
  • putAll(地图 扩展 Key,? 扩展 Val> t): 映射将从上述映射复制到哈希表。
  • 删除(对象k): 键k和对应的值将从表中删除。
  • ():将为地图中存在的值返回集合视图。

用 Java 实现哈希表的示例

每种数据结构都有自己的特殊功能。

下面是用java实现哈希表的例子。

示例#1

用于将键和值添加到哈希表的 Java 程序。

代码:

//Java program to add keys and values to the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable htbl = new Hashtable();
//create an enumeration enm
Enumeration enm;
//create sing s
String s;
//create a double variable balance
double balance;
//add keys and values to the table
htbl.put(" A ", new Double(3500.50));
htbl.put(" B ", new Double(2900.00));
htbl.put(" C ", new Double(3600.00));
htbl.put(" D ", new Double(4550.50));
htbl.put(" E ", new Double(2345.67));
// Store all the keys in the enumeration enm
enm = htbl.keys();
//if more elements are present in the enm, enter this loop
while(enm.hasMoreElements()) {
s = (String) enm.nextElement();
System.out.println(s + ": " + htbl.get(s));
}
System.out.println();
// Add 1000 to value of Key A
balance = ((Double)htbl.get(" A ")).doubleValue();
htbl.put(" A ", new Double(balance + 1000));
System.out.println(" A's new balance : " + htbl.get(" A "));
}
}
登录后复制

输出:

执行代码时将显示 A、B、C、D 和 E 的值。而且A的新余额也会显示出来,如下图。

Java 中的哈希表

示例#2

用于从哈希表中删除键和值的 Java 程序。

Code:

//Java program to remove keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable before removing values: "+ htbl);
// Remove 6 and 3
htbl.remove(6);
htbl.remove(3);
System.out.println("Hashtable after removing values : "+ htbl);
}
}
登录后复制

Output:

Java 中的哈希表

In this program, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then the values of 6 and 3 will be removed and display the rest of the values.

Example #3

Java program to get keys and values from the hashtable.

Code:

//Java program to get keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable : "+ htbl);
//if value of 3 is present, then return it else print Null
System.out.println(htbl.getOrDefault(3, "Null"));
//if value of 8 is present, then return it else print Null
System.out.println(htbl.getOrDefault(8, "Null"));
}
}
登录后复制

Output:

Java 中的哈希表

In this program also, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then, the values for keys 3 and 8 will be retrieved using the method getOrDefault(). Since the value of 8 is not available, null will be returned in the second getOrDefault() method.

以上是Java 中的哈希表的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!