arj*_*ncc 37 java string optimization hashmap map
我有两张地图
Map<String, String> filterMap
Map<String, Object> filterMapObj
Run Code Online (Sandbox Code Playgroud)
我需要的是我想将其转换Map<String, String>为Map<String, Object>.我在这里使用代码
if (filterMap != null) {
for (Entry<String, String> entry : filterMap.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
Object objectVal = (Object)value;
filterMapObj.put(key, objectVal);
}
}
Run Code Online (Sandbox Code Playgroud)
它运行正常,有没有其他方法可以做到这一点,而无需迭代地图中的所有条目.
rua*_*akh 43
你可以使用putAll:
filterMapObj.putAll(filterMap);
Run Code Online (Sandbox Code Playgroud)
(见Javadoc.)
编辑添加:我应该注意上面的方法或多或少等同于迭代地图的元素:它会使你的代码更清晰,但如果你不想迭代元素的理由实际上是一个性能问题(例如,如果你的地图是巨大的),那么它不太可能帮助你.另一种可能性是写:
filterMapObj = Collections.<String, Object>unmodifiableMap(filterMap);
Run Code Online (Sandbox Code Playgroud)
这创造了一个不可修改的"观点" filterMap.当然,这更具限制性,因为它不会让你修改filterMapObj和filterMap独立.(filterMapObj不能修改,任何修改filterMap也会影响filterMapObj.)
你可以简单地写
Map<String, Object> filterMapObj = new HashMap<>(filterMap);
Run Code Online (Sandbox Code Playgroud)