我有HashMap 1,它包含5个键,所有键都有Hashmaps作为值.我想为这些子地图添加键/值对.
map1.get(subCategoryMap).put(newKey, newValue);
Run Code Online (Sandbox Code Playgroud)
我的想法是:
map1.get(subCategoryMap);
Run Code Online (Sandbox Code Playgroud)
返回另一张地图.我可以将这一行分成两行,并具有:
map2 = map1.get(subCategoryMap);
map2.put(newKey, newValue);
Run Code Online (Sandbox Code Playgroud)
但我更愿意一步到位.这就是我尝试的原因
map1.get(subCategoryMap).put(newKey, newValue);
Run Code Online (Sandbox Code Playgroud)
这不起作用(不喜欢对象上的.put()).是否可以访问子地图并在我上面的相同代码行中添加,或者我需要将其拆分为2行?
cle*_*tus 14
使用泛型,您可以:
Map<String, Map<String, String>> map1 = ...
map1.get(category).put(subcategory, value);
Run Code Online (Sandbox Code Playgroud)
如果地图不是通用的:
Map map1 = ...
((Map)map1.get(category)).put(subcategory, value);
Run Code Online (Sandbox Code Playgroud)
((Map)map1.get(subCategoryMap)).put(newKey, newValue);
Run Code Online (Sandbox Code Playgroud)
或者,使用泛型:
Map<X, Map<Y,Z>> map1;
...
map1.get(subCategoryMap).put(newKey, newValue);
Run Code Online (Sandbox Code Playgroud)
但是,NullPointerException
如果map1
不包含映射,则这两种技术都将失败subCategoryMap
.
归档时间: |
|
查看次数: |
23745 次 |
最近记录: |