我是Java新手。我一直在使用Hashtables来读取具有各种键和值的不同数据。
我在Hashtable中有一个Hashtable,我想分成两个Hashtables。
Hashtable<String, Hashtable<String, Double>> sData;
想要分成如下:
Hashtable<String, Double> innerData;
Hashtable<String, String> outerData;
我不确定这是可能的,因为我正在使用外部Hashtable并将值更改为String,而不是另一个Hashtable。无论如何,我以为我会问。
答案 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是表示嵌套键的类。你也可以只连接字符串,但是如果你想要倒退,那就太麻烦了。