我要转换:
Map<String, Map<String, List<Map<String, String>>>> inputMap
至:
Map<String, Map<String, CustomObject>> customMap
inputMap
在配置中提供并准备就绪,但我需要customMap
格式化。CustomObject将派生自List<Map<String, String>>
在函数中使用几行代码。
我尝试了一种迭代输入映射并在customMap中复制键值的常规方法。使用Java 8或其他快捷方式有什么有效的方法吗?
Map<String, Map<String, List<Map<String, String>>>> configuredMap = new HashMap<>();
Map<String, Map<String, CustomObj>> finalMap = new HashMap<>();
for (Map.Entry<String, Map<String, List<Map<String, String>>>> attributeEntry : configuredMap.entrySet()) {
Map<String, CustomObj> innerMap = new HashMap<>();
for (Map.Entry<String, List<Map<String, String>>> valueEntry : attributeEntry.getValue().entrySet()) {
innerMap.put(valueEntry.getKey(), getCustomeObj(valueEntry.getValue()));
}
finalMap.put(attributeEntry.getKey(), innerMap);
}
private CustomObj getCustomeObj(List<Map<String, String>> list) {
return new CustomObj();
}
请正确格式化代码。
—
akuzminykh
您是否考虑过创建外观而不是复制外观?
—
ControlAltDel
没有任何更有效的方法。所有这些操作都必须进行。但是此代码实际上不起作用。您没有将列表放入自定义对象。
—
user207421