McG*_*k07 1 java arrays foreach
可以说有一个包含一系列对象的数组,
Object[] list;
Run Code Online (Sandbox Code Playgroud)
例如,设计用于遍历此数组的方法
public boolean contains(Object e)
{
for(Object e_:list)
if(e_.equals(e))
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
我很困惑的是for循环如何迭代数组.在迭代时,它是否将e_分配给与list [index]相同的内存位置,或者是e_从list [index]克隆的新对象,因为我想要做的是使用==而不是equals()以便我可以具体使用调用该对象,而不是冒险将它与另一个对等.我理解我可以覆盖equals()并使其成为最终以防止继承成为一个问题,但我想了解迭代是如何工作的.你最好用外行的方式回答,而不仅仅是把我送到另一个网站,因为我一直在oracle和其他论坛上,我读到的解释有点过头了.
Java中很少有任何克隆.Java中的赋值(=)运算符不会克隆对象.A = B将参考A设置为与B相同的值.因此(A == B)为真.将对象放入列表/数组时,不会克隆对象.当您遍历数组时,它与您放在那里的参考值相同.