【发布时间】:2018-07-03 15:23:08
【问题描述】:
我在下面的代码中有一个嵌套循环,我正在尝试优化它,因为我知道嵌套 for 循环非常昂贵,有人有不同的方法来实现吗?
提前致谢!
private List<Map<String, Object>> updateSomething(List<Map<String, Object>> list)
throws MetadataException {
for (Map<String, Object> map : list) {
setFilePathAndOffsetParams(map);
for (Map.Entry<String, String> entry : anotherMap.entrySet()) {
updateKeyOnMap(map, entry.getKey(), entry.getValue());
}
}
return list;
}
private void updateKeyOnMap(Map<String, Object> map, String newKey, String oldKey) {
if (!newKey.equals(oldKey)) {
map.put(newKey, map.get(oldKey));
map.remove(oldKey);
}
【问题讨论】:
-
使用索引数组。看到这个链接->stackoverflow.com/questions/18028344/…
-
您确定需要对此进行优化吗?还有这个代码到底应该做什么?也许您可以从第二次小睡中删除一些已经检查过的元素。但是这些地图有多大?
-
另一个地图从何而来?
-
为什么你认为嵌套for循环非常昂贵?您在循环中拥有的代码可能很昂贵,但循环几乎没有成本。
-
你可能应该质疑你认为应该知道的事情。