将Hashtable中的Hashtable拆分为两个单独的Hashtables

时间:2012-08-20 01:50:40

标签: java split key hashtable

我是Java新手。我一直在使用Hashtables来读取具有各种键和值的不同数据。

我在Hashtable中有一个Hashtable,我想分成两个Hashtables。

Hashtable<String, Hashtable<String, Double>> sData;

想要分成如下:

Hashtable<String, Double> innerData;
Hashtable<String, String> outerData;

我不确定这是可能的,因为我正在使用外部Hashtable并将值更改为String,而不是另一个Hashtable。无论如何,我以为我会问。

1 个答案:

答案 0 :(得分:1)

Hashtable<String, Double> innerData;
Hashtable<String, List<String>> outerData; // or use some multimap library

for(String key:sData.keys()){ 
   List<String> outerlist = new List<String>();
   for(String key2:outerData.get(key).keys()){
       outerlist.add(key2);
       innerData.put(key2,outerData.get(key).get(key2))
   }
   outerData.put(key,outerlist)
}

或者如果您想避免交叉哈希数据丢失,则需要新类

Hashtable<Pair<String,String>, Double> innerData;
Hashtable<String, List<Pair<String,String>>> outerData;

其中Pair是表示嵌套键的类。你也可以只连接字符串,但是如果你想要倒退,那就太麻烦了。