2012-01-30 6 views
2

私はこのようになりますMap of Maps持っている:私は、内側のマップを更新したいマップ内のマップを更新するにはどうすればよいですか?

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

を。

私はinnermapを更新するたびに次のことを行う必要がありますか、それを達成するための直接的/より良い方法がありますか?あなたは表のクラスを持っているGoogleのグアバライブラリ、(マップの基本的マップ)を使用して検討すること

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

3行目は必要ありません。 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

関連する問題