gpt4 book ai didi

java - 如何使哈希表中的一个键具有多个值?

转载 作者:行者123 更新时间:2023-12-01 18:01:51 25 4
gpt4 key购买 nike

我有 100 个条目,我必须将它们散列到一个有限大小的散列表中。

我知道如何使用第一个条目 ht.put(k,v)就可以了。

但是一旦我想向其中添加另一个值,旧的值就会被覆盖。我不想这样做,我想将其附加到链接列表或数组列表中。

Hashtable<Integer,Integer> ht = new Hashtable<Integer,Integer>(211);

ht.put(1, 40);
ht.put (1, 60);

System.out.println(ht.get(1));
// output is 60

如何使其同时为 40 和 60?

最佳答案

您可以将 List 作为值类型,例如:

Hashtable<Integer,List<Integer>> ht = new Hashtable<Integer,List<Integer>>(211);

您的 put 操作将如下所示:

public static void put(Hashtable<Integer,List<Integer>> ht, int key, int value) {
List<Integer> list = ht.get(key);
if (list == null) {
list = new ArrayList<Integer>();
ht.put(key, list);
}
list.add(value);
}

[更新1]如果你愿意,你可以对 Hashtable 进行一个扩展,例如:

public class MyHashtable extends Hashtable<Integer,List<Integer>> {
public MyHashtable(...) { // add params if needed
super(...);
}

// with additional method:
public static void putOne(int key, int value) {
List<Integer> list = this.get(key);
if (list == null) {
list = new ArrayList<Integer>();
this.put(key, list);
}
list.add(value);
}
}

关于java - 如何使哈希表中的一个键具有多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40334072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com