创建临时引用还是重用?哪个更好?

Creating a temporary reference, vs reusing? which is better?

假设我有一个方法调用了多次(比如每次应用程序运行 10 次)。

我遍历一个列表,找到一个具有正确 ID 的元素,然后将该元素作为另一个方法的参数传递。

这个引用是我每次用新元素更新的 class 的字段(成员),还是我只是创建一个新的临时引用,这有什么区别吗?下面的代码示例

for (element e : list) {
    if (e.getID() == searchID) {
        //reassigning value of the reference in the class
        mElementToRemove = e;
        break;
        }
 }
 list.remove(mElementToRemove);

VS.

 for (element e : list) {
    if (e.getID() == searchID) {
        //(new reference)
        Element mElementToRemove = e;
        break;
        }
 }
 list.remove(mElementToRemove);

也许在风格更好或性能更高方面没有区别?

谢谢!

*编辑。我打错了底部的例子。对于完整的上下文,我的意思是:

 private void removeThisId(int searchID) {
 Element ElementToRemove = e; 
 for (element e : list) {
    if (e.getID() == searchID) {
        //(new reference)
        mElementToRemove = e;
        break;
        }
 }
 list.remove(mElementToRemove);

}

在第二个示例中,Element 将在循环结束时超出范围,因此甚至无法编译。

您是否考虑过使用 Iterator

for(Iterator<Element> i = list.iterator(); i.hasNext(); ) {
     if(i.next().getId() == searchID) {
         i.remove();
     }
}

没有并发修改错误,无需声明临时变量。

而且如果你保证List中最多只有一个searchID(那为什么不使用Set呢?),那么你可以通过在后面插入break;来提早退出移除调用。

Premature optimization is the root of all evil - Donald Knuth

以上对你的情况意味着,除非你有令人信服的优化理由,否则不要考虑优化。