形式的哈希表 - 在Java中的

问题描述:

我只是想知道是否有可能创建一个形式为<key, hash table>的java的哈希表。形式的哈希表 - 在Java中的<key,哈希表>

本质上,第一个密钥导致我到一个新的散列表;然后我使用另一个键搜索该表。

当然它是:

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

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

编辑:作为@AndreiBodnarescu正确地指出,还必须仔细选择你的Map实现(Map是一个接口)。问自己以下问题:

  • 是外部/内部映射所需的多线程访问?如果是,请考虑HashtableCollections.synchronizedMap(...);
  • 插入顺序是否重要?如果是,请考虑LinkedHashMap;
  • 你想把钥匙分类吗?如果是,请考虑TreeMap

请仔细选择您的实施!

可以使用

Hashtable<KeyType,Hashtable<InnerKeyType,InnerValueType>> ht = new Hashtable<>(); 

其中obviouslly的InnerValueType仍然是一个哈希表

如果你的数据结构不被多个线程访问,您可以repalce的Hashtable与HashMap中拥有的所有行为一个哈希表结构,但没有同步。

+0

1为表/图的区别 – 2012-01-18 13:44:26

尝试

Hashtable<Integer, Hashtable> hashTable = new Hashtable<Integer, Hashtable>(): 

Ofcourse这是可能的。您应该使用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>());