这是我正在尝试做的事情。
Map<String, List<Address>> mapObj = someService.getSomeAddress();
使用以上通话我的mapObj
类型为Map<String, List<Address>>
我想将mapObj
作为参数发送到另一个方法(我无法更改)作为LinkedHashMap<String, List<LinkedHashMap>>
进行进一步处理。
有没有办法解决这个问题,而不会影响mapObj
内的数据?
答案 0 :(得分:2)
您需要执行几个转换步骤。
Address
个对象转换为LinkedHashMap
个对象。Map
条目放入LinkedHashMap
对象。对于第一个,您可以在可以进行此转换的地方编写实用程序方法。例如,
public static List<LinkedHashMap> addresstoMap(List<Address> addresses)
{
List<LinkedHashMap> list = new ArrayList<>();
for(Address a: addresses){
LinkedHashMap map = new LinkedHashMap();
// Add address fields to map here
list.add(map);
}
return list;
}
然后,对于第二步,您可以这样做:
LinkedHashMap<String, List<LinkedHashMap>> map = new LinkedHashMap<?,?>();
遍历mapObj
的条目集并将它们放入上面的map
对象中。
for (Map.Entry<String, List<Address>> e : m.entrySet()) {
map.put(e.getKey(), addresstoMap(e.getValue()));
}
上面的最终map
对象将包含LinkedHashMap<String, List<LinkedHashMap>>
数据类型中的正确表示。
希望这有帮助!