我的问题是我有一个哈希表,最终得到了一些带有两个值的键。我想同时获得这两个价值,因此我可以看到我想要的一个并接受它。
这是一个例子:
Hashtable<String, String> myTable = new Hashtable<>();
myTable.put("key1", "value1");
myTable.put("key1", "value2");
System.out.println(myTable.get("key1"));
//output : value2
如何同时获取这两个值?
谢谢您的帮助 !
编辑:在我的测试中,HashTable不能存储这样的2个值,但我保证在我的项目中,我有一个(我相信)执行相同操作的代码。当我的算法运行完System.out.prinln(myTable)后,它确实多次显示具有不同值的同一键。
在您的示例中,这取决于创建HashTable的方式。您创建一个HashTable将一个String映射到一个String,然后因为该值是一个String,所以不能期望该表可以在一个键上存储多个值。当您执行第二种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
建议在HashTable上使用HashMap。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句