根据课程Hashtable
的java文档:
This example creates a hashtable of numbers. It uses the names of the numbers as keys:
Hashtable<String, Integer> numbers
= new Hashtable<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);
To retrieve a number, use the following code:
Integer n = numbers.get("two");
if (n != null) {
System.out.println("two = " + n);
}
当Hashtable不允许键和值中的空值时,为什么在上面代码中的get()操作期间使用if (n != null) {
?
如果它是为HashMap编写的那么它可以正常,因为HashMap允许键和值中的空值,但为什么它将它用于Hashtable?
答案 0 :(得分:5)
这是一种很好的做法,因为如果Hashtable中不存在指定的键,get()
方法将返回null
。
在上面的代码示例中,我们可以省略这一点,因为我们知道"two"
键存在,但在现实生活中的应用程序通常不是这样。
答案 1 :(得分:3)
如果地图/表中没有该键,则返回null。
答案 2 :(得分:3)
你可以写
if (number.containsKey("two")) {
Integer n = numbers.get("two");
System.out.println("two = " + n);
}
虽然这更清楚,但它有两个问题。
鉴于选择了线程安全的Hashtable,看起来性能不如线程安全那么重要,所以第二个原因更有可能。
答案 3 :(得分:1)
如果指定的键不存在,则返回Null值