遍历哈希表java中键的所有值 Hashtable ht=newhashtable(); ht.put(1,“学生1”); ht.put(1,“学生2”);

遍历哈希表java中键的所有值 Hashtable ht=newhashtable(); ht.put(1,“学生1”); ht.put(1,“学生2”);,java,loops,hashtable,key-value,Java,Loops,Hashtable,Key Value,如何遍历“单个键”的所有值 键:1 值:student1、student2哈希表不会为单个键存储多个值 当您写入ht.put(1,“student2”)时,它会覆盖与“1”一起的值,并且不再可用。哈希表不允许一个键有多个值。当你将一个第二个值添加到一个键时,你就替换了原来的值。 如果你想要一个键的多个值,考虑使用一个数组的哈希表。 您需要使用: Hashtable<Integer,String> ht = new Hashtable<Integer,String>();

如何遍历“单个键”的所有值

键:1

值:student1、student2

哈希表不会为单个键存储多个值


当您写入ht.put(1,“student2”)时,它会覆盖与“1”一起的值,并且不再可用。

哈希表不允许一个键有多个值。当你将一个第二个值添加到一个键时,你就替换了原来的值。

如果你想要一个键的多个值,考虑使用一个数组的哈希表。 您需要使用:

Hashtable<Integer,String> ht = new Hashtable<Integer,String>();
ht.put(1,"student1");
ht.put(1,"student2");
然后在插入新条目之前,使用方法检查密钥是否已经存在。如果密钥已经存在,则获取相应的列表,然后向其添加新值。否则,放入一个新的键值对

Map<Integer, List<String>> map = new HashMap<Integer, List<String>>();

谢谢,那么我应该使用什么数据结构呢;正如@Rohit Jain在回答中指出的,非常感谢。Arrays.asList(“newValue”)是什么意思?@sweet。它创建一个新列表,其中包含传递到方法中的值。在
数组
类中浏览该方法的文档。
Map<Integer, List<String>> map = new HashMap<Integer, List<String>>();
if (map.containsKey(2)) {
    map.get(2).add("newValue");
} else {
    map.put(2, new ArrayList<String>(Arrays.asList("newValue")); 
}
Multimap<Integer, String> myMultimap = ArrayListMultimap.create();

myMultimap.put(1,"student1");
myMultimap.put(1,"student2");

Collection<String> values = myMultimap.get(1);