저는 10 개의 자식 해시 맵을 포함하는 해시 맵을 갖습니다. 각 해시 맵은 키 배열로 매핑됩니다. 하위 해시 맵에서 특정 키의 값을 업데이트하려는 경우 모든 키가 대신 업데이트됩니다. 뿐만 아니라 모든 어린이 hashmap도 업데이트됩니다. 이 코드는 내가하고있는 것을 보여줍니다. 중첩 된 해시 맵은 변경하려는 키 대신 모든 키의 모든 값을 업데이트합니다.
HashMap<String, HashMap<String, String[]>> parentMap = new HashMap<String, HashMap<String, String[]>>();
for(String x : someArray){ // Adds 10 children hashmaps to parentMap
parentMap.put(x,new HashMap<String, String[]>());
for(String y : someOtherArray){ // Creates 5 keys for each of the children hashmaps
parentMap.get(x).put(y,stringArray);
}
}
parentMap.get(someKey).put(someOtherKey,modifiedArray); // This updates the entry I want to update.
내가 마지막 명령으로 업데이트
, 나는 특별히 그 키를 업데이트 할, 그러나 모든 HashMaps을 대신 내가 원하는 하나를 업데이트하는 모든 어린이를위한, 대신 모든 키를 업데이트됩니다.잘하면이게 올바른 방법인지는 모르겠지만 온라인에서 행운이없이 비슷한 일을하는 것에 대한 조언을 찾고 있습니다. 나는 Java로는 전혀 좋지 않다. 같은 결과를 더 간단하게 얻을 수 있다면 환영 할 것이다. List 나 그와 비슷한 것을 사용할 수 없다. int 인덱스를 사용하기 때문에 참조 할 필요가있다. 파이썬에서 사전과 같은 문자열을 사용하여 내 객체에 연결합니다.
감사 aioobe! 이게 내 문제를 해결했습니다! 나는 HashMaps가 이와 같이 행동한다는 생각을 가지고 있지 않았다. 그것은 나에게 C 포인터를 생각 나게한다. – xmc