0

私はJavaを初めて使用します。私はハッシュテーブルを使用して、さまざまなキーと値を使用してさまざまなデータを読み込みてきました。

2つのハッシュテーブルに分割したいハッシュテーブル内にハッシュテーブルがあります。

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

次のようなものに分割したい:

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

外側のハッシュテーブルを取得し、値を別のハッシュテーブルではなく文字列に変更していることを考えると、これが可能かどうかさえわかりません。とにかく聞いてみようと思いました

4

1 に答える 1

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は、ネストされたキーを表すクラスです。文字列を連結することもできますが、逆方向に作業する場合は面倒です。

于 2012-08-20T01:55:24.947 に答える