有没有人知道是否有一种简单的方法可以重构代码以使用foreach迭代集合而不是while / Iterator组合?
示例:
我有:
Iterator<MyObject> iterator = list.iterator();
while (iterator.hasNext()) {
MyObject myObject = iterator.next();
// do stuff
}
我想要:
for (MyObject myObject : list) {
// do stuff
}
是的,我知道我没有获得任何性能提升。我只是希望它不那么冗长,因为我喜欢:)
答案 0 :(得分:0)
假设迭代代码的所有出现都与您的示例相似, 尝试使用find并替换为以下正则表达式。
查找
Iterator<([a-zA-Z0-9_]{1,})> [a-zA-Z0-9_]{1,} = ([a-zA-Z0-9_]{1,})\.iterator\(\);\R[\t]{1,}while \(iterator\.hasNext\(\)\) \{\R[\t]{1,}[a-zA-Z0-9_]{1,} ([a-zA-Z0-9_]{1,}) = iterator\.next\(\);
替换:
for($1 $3 : $2) {