2013-11-20 2 views
-1
ArrayList<SomeObject> listSomeObject; 
HashMap<String, SomeObject> hmSomeObject; 

SomeObject so = new SomeObject(); 
listSomeObject.add(so); 
hmSomeObject.put("key", so); 

hmSomeObject.get("key").setSomeProp(5); 

끝에 set 명령을 사용하면 ArrayList의 요소도 변경됩니까? 실제로 실제로 단지 하나의 객체가 있습니까? 다른 말로 :여러 목록 /지도에 개체 추가

listSomeObject.get(0).getSomeProp() 

이것은 5를 반환합니까?

+5

실행하고 테스트 해보십시오. –

+0

나는 그것을 실행하고 싶지 않다. 나는 Google에 즉시 답변을보고 싶습니다. 그래서이 사람들은 예라고 말하고 이것에 관한 색인 된 페이지를 작성하면서 희생했습니다. 이웃이 필요할지도 모릅니다. – Halo

+0

제 이웃이 좋은 Java 서적이나 온라인 자습서를 읽고 시간을 보내고 그런 것들을 찾기보다는 개념을 이해할 것을 기대합니다. –

답변

2

짧은 대답 : 예.

답변 : 예!

정말 긴 대답 : 왜 밖으로 시도하고 실제로 5 돌아 오는 것을 알지 못했습니까?

+0

나는 그것이 맞을 것이라고 짐작했다; 나는 그것을 시도 할 수 있었다. 그러나 내가 그것을봤을 때 나는 결과를 즉시 볼 수 없었다. 그래서 저는 이것을 또한 일종의 기록으로하기를 원했습니다. – Halo

0

예. 왜냐하면 값 자체가 아닌 값을 참조하기 때문입니다. 참조를지도,지도 또는 기타 다른 곳에 넣을지라도 여전히 동일한 값을 수정하게됩니다.

+4

포인터가 아닌 참조 –

+0

실제로 포인터가 아니라 참조입니다. – brimborium

+0

건배, 그냥 고쳐. –

1

so이라는 개체가 하나만 있으며지도와 목록에 의해 참조 (참조)됩니다. 모든 참조를 통해 so에서 변경 한 사항은 어디에서나 볼 수 있습니다.

대답은 예입니다.