Java Hashtable : one key - two value, 如何获取它们?

标签 java hashtable

我的问题是我有一个哈希表,并且最终得到一些具有两个值的键。我想同时获得这两个值,这样我就可以看到我想要哪一个并接受它。

这是一个例子:

Hashtable<String, String> myTable = new Hashtable<>();
myTable.put("key1", "value1");
myTable.put("key1", "value2");
System.out.println(myTable.get("key1"));
//output : value2

如何检索这两个值?

感谢您的帮助!

<小时/>

编辑: 在我的测试中,哈希表无法存储像这样的 2 个值,但我保证在我的项目中我有一个(我相信)代码可以做同样的事情。当我的算法运行后,我System.out.prinln(myTable)它确实多次显示具有不同值的相同键。

最佳答案

在您的示例中,这取决于创建哈希表的方式。您创建一个将字符串映射到字符串的哈希表,然后因为该值是字符串,所以您不能指望该表可以在一个键上存储多个值。当您执行第二个 put 方法时,它将找到值为 key1 的键,并将映射到该键的先前值替换为新值。

如果您想在一个键上存储多个值,请考虑一个将保存您的键的多个值的列表。下面是一个将 String 类型的键映射到多个 String 值的示例:

Hashtable<String, ArrayList<String>> myTable = new Hashtable<>();
ArrayList<String> listValue = new ArrayList<>();
listValue.add("value1");
listValue.add("value2");
myTable.put("key1", listValue); 
System.out.println(myTable.get("key1")); // get all values of the key [value1, value2]
System.out.println(myTable.get("key1").get(0)); // get the first value of this key, value1
System.out.println(myTable.get("key1").get(1)); // get the second value of this key, value2

建议使用 HashMap 而不是 HashTable。

关于Java Hashtable : one key - two value, 如何获取它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61158143/

相关文章:

java.sql.SQLException : no such column 异常

Java Swing - GameLoop - 奇怪的结果

java - 关于采集框架

java - 哈希表中的并发性和故障安全行为

powershell - 使用 Powershell 哈希表键时如何避免错误匹配

java - 如何通过 RegEx 或 replaceAll 删除包含特殊字符的字符串部分?

java - java程序中的oracle数据库连接

java - 从现有实例创建新实例,新类实例更改现有类参数

java - 在 XSLT 中检索 HashMap 值

algorithm - 我们可以使用 1 个表实现布谷鸟哈希吗?