Java 中的多值哈希表
2022-09-01 16:37:07
是否可以在哈希表中为同一键设置多个值?如果没有,你能建议任何可以使用的类或接口吗?
是否可以在哈希表中为同一键设置多个值?如果没有,你能建议任何可以使用的类或接口吗?
不。这就是哈希表的概念。
但是,您可以使用一些实用程序方法来创建列表(如果不存在),也可以使用Google Collections中的Multimap
之类的方法。Map<YourKeyObject, List<YourValueObject>>
String key = "hello";
Multimap<String, Integer> myMap = HashMultimap.create();
myMap.put(key, 1);
myMap.put(key, 5000);
System.out.println(myMap.get(key)); // prints either "[1, 5000]" or "[5000, 1]"
myMap = ArrayListMultimap.create();
myMap.put(key, 1);
myMap.put(key, 5000);
System.out.println(myMap.get(key)); // always prints "[1, 5000]"
请注意,这不是家庭烘焙溶液的完全等价物;Hashtable
同步其所有方法,但不做这样的保证。这意味着,如果在多个线程上使用 a,则使用 可能会给您带来问题。如果您的地图仅在一个线程上使用,则不会有任何区别(您应该使用HashMap
而不是无论如何)。Multimap
Multimap
Multimap
Hashtable
哈希表的值为对象,因此您可以存储列表