这就是我想要做的。
Map<String, List<Address>> mapObj = someService.getSomeAddress();
使用上述调用,我得到类型为
mapObj
的Map<String, List<Address>>
我想在另一个方法(我无法更改)中以
mapObj
的形式发送LinkedHashMap<String, List<LinkedHashMap>>
作为参数,它进行一些进一步处理。有什么办法可以解决此问题而又不影响
mapObj
中的数据? 最佳答案
您将需要执行几个转换步骤。
将所有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>>
数据类型中包含正确的表示形式。希望这可以帮助!
关于java - 如何将一些自定义Map对象转换为LinkedHashMap?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41098251/