foreach가 List를 옮겨다니며 반복 변수의 값을 바꾸면 List의 값을 바꿀 수 있습니까?
foreach를 통해든 for를 통해든 순환할 때, 대상이 get () 방법으로 가져오는 것이지 new에서 나오는 것이 아니라면, 순환에서 대상의 속성을 바꾸는 방식으로 List 집합에서 대상의 속성 값을 바꿀 수 있습니다.new에서 나온 대상이 아니라면 이 변수에 저장된 것은 List에서 전송된 진정한 대상의 주소일 뿐이고 이 변수의 자체 대상은 없을 것이다. 물론 새로운 저장 공간을 차지하지 않을 것이다. 순환에서 이 변수에 대한 작업은 모두 이 변수가 가리키는 대상에 대한 작업이기 때문에 List 집합에서 대응하는 대상의 속성 값을 바꿀 것이다.
테스트 코드:
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.test();
}
public void test() {
List list = new ArrayList();
list.add(new Aoo("aaa"));
list.add(new Aoo("bbb"));
list.add(new Aoo("ccc"));
for(Aoo a : list) {
if(a.getName().equals("bbb")) {
a.setName("111");
}
}
for(Aoo a : list) {
System.out.println("name:" + a.getName());
}
}
class Aoo{
private String name;
public Aoo(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
}
테스트 결과:
name:aaa
name:111
name:ccc
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.