2つのハッシュマップがあり、最初のハッシュマップの値となる3番目のハッシュマップを埋めたいと思います。 2番目のハッシュマップは配列に分割されます。 すなわち:キーと値を持つHashMapは、Javaを使用して他の2つのハッシュマップの値と同じです
hashmap1 = {1=e1, 2=e2}
hashmap2 = {10=word1-word2-word3, 20=word4-word5-word6}
the result:
hashmap3 = {e1=word1-word2-word3, e2=word4-word5-word6}
これは私がこれまでにやったことです:
static HashMap<Integer, String> catnamecatkeys = new HashMap<Integer, String>();
static HashMap<Integer, String> keywords = new HashMap<Integer, String>();
static HashMap<String, String> tempHash = new HashMap<String, String>();
static HashMap<String, String[]> hash = new HashMap<String, String[]>();
static String[] arr;
public static void main(String[] args) {
catnamecatkeys.put(1, "e1");
catnamecatkeys.put(2, "e2");
keywords.put(1, "word1-word2-word3");
keywords.put(2, "word4-word5-word6");
for (int key : catnamecatkeys.keySet()) {
tempHash.put(catnamecatkeys.get(key),null);
}
for(String tempkey: tempHash.keySet()){
tempHash.put(tempkey,keywords.entrySet().iterator().next().getValue());
arr = tempHash.get(tempkey).split("-");
hash.put(tempkey, arr);
}
System.out.println(tempHash);
for (String hashkey : hash.keySet()) {
for (int i = 0; i < arr.length; i++) {
System.out.println(hashkey + ":" + hash.get(hashkey)[i]);
}
}
}
が、出力は次のようになります。
hashmap3 = {e1=word1-word2-word3, e2=word1-word2-word3}
任意のアイデアしてください?
地図のアイテムを挿入順に関連付けるようにしていますか?一度HashMapクラスに挿入されると、反復の順序は挿入の順序と等しくなりません。 –
マップ内のアイテムを挿入順(同じキーではなく)で関連付けると、イテレータの順序は挿入順に基づいていないため、HashMapは機能しません反復の順序は不特定である)。 –