我们知道“ 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。
我不太确定它是如何工作的,任何建议或帮助将非常感谢!