2012-01-30 8 views
2

나는이처럼 보이는 Map of Maps 있습니다지도에서지도를 업데이트하려면 어떻게해야합니까?

Map<String, Map<String, Object>> data; 

내가 내부지도를 업데이트 할.

innermap을 업데이트 할 때마다 다음을 수행해야합니까? 아니면 다른 직접/더 좋은 방법이 있습니까? 당신은 테이블 클래스가 구글 구아바 라이브러리 (지도 기본적으로지도) 사용을 고려할 수

Map<String, Object> innerMap = data.get("outer_key"); 
innerMap.put("inner_key", value); 
data.put("outer_key", innerMap); 
+2

'inner.put ("inner_key", 값);','innerMap.put ("inner_key"가졌어야 할, 가치); – yannis

+1

세 번째 줄은 필요하지 않습니다. 단일 인스턴스 (내부 맵)에 대한 참조를 공유하고 있습니다. – allingeek

답변

3

당신은 거기에 오타가있을 수 있으며 inner이 실제로는 innerMap이라고 생각합니다. 아마 외부 맵에 null 값을 고려하여 그것을 약간 수정 한 것입니다 :

Map<String, Object> innerMap = data.get("outer_key"); 

// Added this if statement to handle null values in the outer map. 
if (innerMap == null) { 
    innerMap = new HashMap<String, Object>(); 
    data.put("outer_key", innerMap); 
} 

innerMap.put("inner_key", value); 
// data.put("outer_key", innerMap); <-- This is not needed, innerMap is already a value in 
            // the outer map. 
+0

감사합니다. "<- 필요하지 않습니다 ..."부분이 도움이됩니다! – 500865

관련 문제