Java - 参数和增强的For循环复制问题

Mer*_*mer 3 java foreach parameter-passing arraycopy

假设我有这样的代码;

public void insert(Student[] stus)
{
    int count = 0;
    for(Student s: stus)
    {
    s.setId( bla bla);
    stus[count].setId(bla bla) // is this line needed?
    count++;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我从增强的for循环更改s上的任何内容,我是否也可以看到stus数组中的更改?循环复制的增强如何在参数或其他东西中起作用?

Era*_*ran 5

增强的for循环不会创建集合或数组的你迭代,因此元素的副本s.setId(),并stus[count].setId()会更新相同的Student实例.

stus[count].setId(bla bla)不需要,也不需要s.setId(bla bla).