Java字典类

时间:2020-02-23 14:36:29  来源:igfitidea点击:

Java字典是一个抽象类。
它是任何键值映射对象(例如Hashtable)的父类。
但是,不赞成使用Java 1.2中引入的Map接口,该接口后来简化了Collections Framework。
字典不允许键和值的null。

注意:字典类已过时,您不应使用它。
我在Python中经常使用字典,并且对Java中是否有Dictionary类感到好奇?这就是我对Dictionary类的了解。
如果您感到好奇,这里提供的信息只是对它有所了解,请尝试避免在应用程序中使用它。

Java字典方法

此类声明实现类必须实现的7个方法。

  • int size():返回字典的大小。

  • boolean isEmpty():如果没有键值映射,则返回true,否则返回false。

  • Enumeration <K> keys():返回字典中键的枚举。

  • Enumeration <K> elements():返回字典中值的枚举。

  • V get(Object key):返回与键关联的值,如果键不存在,则返回null。

  • V put(K键,V值):将键值对添加到字典中。
    如果任何键值均为null,则抛出NullPointerException。
    如果键已经存在,则返回关联的值,然后更新新值。
    如果是新密钥,则返回null。

  • V remove(Object key):从字典中删除键/值对。
    返回与键关联的值。
    如果字典中不存在该键,则不执行任何操作,并返回null。

词典实现类

Dictionary的唯一直接实现是Hashtable类。
Properties类扩展了Hashtable,因此它也是Dictionary的实现。

Java字典初始化

Dictionary<String, Integer> dict = new Hashtable<>();

字典支持泛型,因此我们可以在声明和实例化Dictionary对象时指定键值类型。

带值的字典初始化

Hashtable类具有一个构造函数,该构造函数接受Map并将其密钥对复制到Hashtable对象。
我们可以使用它来初始化带有值的字典。

Map<String, String> tempMap = new HashMap<>();
tempMap.put("1", "One");

Dictionary<String, String> dict1 = new Hashtable<>(tempMap);
		
System.out.println(dict1); //prints {1=One}

Java字典与地图

  • 字典是一个抽象类,而地图是一个接口。

  • 在精简Collection类和在JDK 1.2中引入Map后,不推荐使用Dictionary类。

  • 不要在您的应用程序中使用字典,最好使用地图。

Java字典vs哈希表

  • Dictionary是一个抽象类,其中Hashtable是Dictionary的实现。

  • 不推荐使用字典类,而仍在使用Hashtable。
    实际上,Hashtable是Collections框架的一部分,并实现Map接口。

如何检查字典中是否存在键

这是一个简单的程序,其中我们遍历键的枚举,以检查键是否存在于字典中。

Dictionary<String, String> dict = new Hashtable<>();
dict.put("1", "One");
dict.put("2", "Two");
dict.put("3", "Three");

Enumeration<String> keys = dict.keys();

boolean found = false;
String lookupKey = "2";
while (keys.hasMoreElements()) {
	String key = keys.nextElement();
	if (lookupKey.contentEquals(key)) {
		found = true;
		System.out.println(lookupKey + " is present in the dictionary.");
		break;
	}
}
if (!found)
	System.out.println(lookupKey + " is not present in the dictionary.");

我们还可以使用get()方法检查密钥是否存在。
如果密钥不存在,则返回null。
另外,不允许使用null值,因此可以使用null检查。

String value = dict.get(lookupKey);

if(value != null)
	System.out.println(lookupKey + " is present in the dictionary.");
else
	System.out.println(lookupKey + " is not present in the dictionary.");