表单的哈希表 - 在Java中的<key,hash =“”table =“”> </key,>

时间:2012-01-18 13:37:19

标签: java hashtable

我只想知道是否可以在<key, hash table>格式的java中创建哈希表。

基本上第一个键引导我到一个新的哈希表;然后我用另一把钥匙搜索那张桌子。

4 个答案:

答案 0 :(得分:10)

当然是:

Map<K1, Map<K2, V>> themap = new HashMap<K1, Map<K2, V>>();

其中K1是“哈希表”的关键,K2V是内部“哈希表”的键和值类型。

编辑:正如@AndreiBodnarescu正确指出的那样,您还必须仔细选择Map实施(Map是一个界面)。问自己以下问题:

  • 是外/内图上需要多线程访问?如果是,请考虑HashtableCollections.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>():