我只想知道是否可以在<key, hash table>
格式的java中创建哈希表。
基本上第一个键引导我到一个新的哈希表;然后我用另一把钥匙搜索那张桌子。
答案 0 :(得分:10)
当然是:
Map<K1, Map<K2, V>> themap = new HashMap<K1, Map<K2, V>>();
其中K1
是“哈希表”的关键,K2
和V
是内部“哈希表”的键和值类型。
编辑:正如@AndreiBodnarescu正确指出的那样,您还必须仔细选择Map
实施(Map
是一个界面)。问自己以下问题:
Hashtable
或Collections.synchronizedMap(...)
; LinkedHashMap
; TreeMap
。仔细选择您的实施方案!</ p>
答案 1 :(得分:2)
你可以使用
Hashtable<KeyType,Hashtable<InnerKeyType,InnerValueType>> ht = new Hashtable<>();
显然,InnerValueType仍然可以是Hashtable
如果多个线程没有访问您的数据结构,您可以使用HashMap重新生成Hashtable,HashMap具有散列表结构的所有行为但没有同步。
答案 2 :(得分:1)
当然这是可能的。您应该使用HashMap
,而不是Hashtable
(因为Hashtable
是自Java 1.2以来已被HashMap
替换的旧集合类。)
示例:
Map<String, Map<String, Object>> mapOfMaps = new HashMap<String, Map<String, Object>>();
mapOfMaps.put("one", new HashMap<String, Object>());
mapOfMaps.put("two", new HashMap<String, Object>());
答案 3 :(得分:0)
试
Hashtable<Integer, Hashtable> hashTable = new Hashtable<Integer, Hashtable>():