Con*_*nor 3 java dictionary hashmap type-conversion data-structures
什么是最简单/最好的转换方式
Map<String, Object>
Run Code Online (Sandbox Code Playgroud)
至
HashMap<String, String>
Run Code Online (Sandbox Code Playgroud)
我正在使用的API具有返回Map的方法,但如果我不必每次都将Object转换为String,则会更容易.
此外,这甚至值得做吗?HashMap比Map更快/更有效吗?
我假设我必须遍历原始Map并将值复制到新的HashMap.
提前致谢!
您可以像其他人一样使用构造函数:
Map<String, String> newMap = new HashMap(oldMap);
Run Code Online (Sandbox Code Playgroud)
只有当你知道有Object问题的s 真的 String是s时,这才有效.
但是我应该提一下:
不要将接口与类混淆.Map只是一个界面 ; 仅包含定义的合同.一类,另一方面是具体实现的的接口.因此,如果使用Map 接口或其运行时类型(HashMap),它在perfomrance方面没有任何区别.但是,如果您交换实现(TreeMap例如),它可能会有所不同.
编辑:
以下是EE人员喜欢的详细解决方案(不涉及任何铸造/原型警告):
public class MapConverter {
public Map<String, String> convert(Map<String, Object> oldMap) {
Map<String, String> ret = new HashMap<String, String>();
for (String key : oldMap.keySet()) {
ret.put(key, oldMap.get(key).toString());
}
return ret;
}
}
Run Code Online (Sandbox Code Playgroud)