当前位置: 首页 > 面试题库 >

在Java中将Hashtable创建为final

巫马星雨
2023-03-14
问题内容

我们知道“ final”关键字在Java中的用途。在将变量声明为final时,我们必须初始化变量。例如“ final int a = 10;”
我们无法更改“ a”的值。但是,如果我们选择HashTable,甚至可以将HashTable声明为final,也可以添加一些值。

例::

 private static final Hashtable<String,Integer> MYHASH = new Hashtable<String,Integer>() 
{{     put("foo",      1);     
       put("bar",      256);     
       put("data",     3);     
       put("moredata", 27);     
       put("hello",    32);     
       put("world",    65536);  }};

现在,我将MYHASH HashTable声明为final。如果我尝试向此添加更多元素,则它会被接受。

MYHASH.put("NEW DATA",      256);

现在,“ NEW DATA”已添加到HashTable中。我的问题是为什么它允许添加甚至声明为final ????


问题答案:

因为final标记了引用,而不是对象。您不能使该引用指向另一个哈希表。但是您可以对该对象执行任何操作,包括添加和删除内容。

您的示例int是原始类型,而不是引用。Final表示您无法更改变量的值。因此,使用a
int不能更改变量的值,例如,使变量的值int不同。使用对象引用,您不能更改引用的值,即它指向的对象。



 类似资料:
  • 本文向大家介绍如何在C#中创建Hashtable的浅表副本?,包括了如何在C#中创建Hashtable的浅表副本?的使用技巧和注意事项,需要的朋友参考一下 要创建Hashtable的浅表副本,代码如下- 示例 输出结果 这将产生以下输出- 示例 让我们看另一个例子- 输出结果 这将产生以下输出-

  • 主要内容:1 什么是Java Hashtable,2 Java Hashtable的语法,3 Java Hashtable的构造方法,4 Java Hashtable的方法,5 Java Hashtable的例子,6 Java Hashtable的例子:remove(),7 Java Hashtable的例子:getOrDefault(),8 Java Hashtable的例子:putIfAbsent()1 什么是Java Hashtable Java Hashtable类实现了一个哈希表,该哈

  • 问题内容: 我正在寻找一个Java库,该库可以获取PDF并从第一页创建缩略​​图(PNG)。 我已经看过JPedal了,但是它疯狂的许可费完全让人望而却步。目前,我正在使用iText处理PDF文件,但我相信它不会生成缩略图。我可以在命令行上使用类似Ghostscript之类的东西,但我希望尽可能将我的项目保留为全Java。 问题答案: PDF Renderer 是LGPL许可的纯Java库,它使此

  • 问题内容: Java中的ConcurrentHashMap和Hashtable有什么区别? 对于线程化应用程序,哪个更有效? 问题答案: 使用多个存储桶来存储数据。这样可以避免读取锁定,并大大提高了性能。两者都是线程安全的,但是使用显然可以赢得性能。 从using 读取时,没有锁,与之相反,所有操作都只是简单地同步了。 在Java的旧版本中发布,而Java 5+ 则是。 在单线程应用程序中使用是最

  • 问题内容: 我在Java中有一个Hashtable,想要迭代表中的所有值,并在迭代时删除特定的键值对。 怎么做? 问题答案: 您需要使用一个明确的遍历的条目集,而不是能够通过使用现有的增强的for循环语法的Java 6.下列示例循环的,对,去除其任何进入关键是空还是equals 0。

  • 我不太确定它是如何工作的,任何建议或帮助将非常感谢!