마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

일반 변수와 LIst의 차이점 질문

0 추천
public class A {
public int aa = 0;
 
public static void main(String[] args) {
A a = new A();
a.aa = 1;
B b = new B(a.aa);
b.ABC();
System.out.println(a.aa);
 
}
}
 
public class B {
private  int a;
 
public B(int a) {
this.a = a;
}
 
public void ABC() {
a = 3;
}
}
 
이소스에서 a 를 출력하면 aa는 1이 나옵니다. B클래스 값을 넘겨서 바꿔도 aa값은 바뀌지 않죠.
그런데
/////////////////////////////////////////////////////////////////////////////////////
public class A {
 public List<Integer> TextOnlineColumn = new ArrayList<Integer>();
 
 public static void main(String[] args) {
  A a = new A();
  a.TextOnlineColumn.add(111);
  B b = new B(a.TextOnlineColumn);
  b.ABC();
  System.out.println(a.TextOnlineColumn.size());
 
 }
}
 
 
public class B {
 private  List<Integer> TextOnlineColumn;
 
 public B(List<Integer> TextOnlineColumn) {
  this.TextOnlineColumn = TextOnlineColumn;
 }
 
 public void ABC() {
  TextOnlineColumn.add(11);
  TextOnlineColumn.add(11);
  TextOnlineColumn.add(11);
  TextOnlineColumn.add(11);
 }
}
 
BB클래스에서 LIST값을 추가사고   a.TextOnlineColumn의 크기를 보니 5로 늘어나있습니다.
일반 변수랑 LIST는 다른건가요?
왜이런건지 설명좀 해주세요.
 
summit (760 포인트) 님이 2013년 7월 11일 질문

2개의 답변

0 추천
 
채택된 답변

 일반 변수와 LIST 변수가 다르다는 관점으로 접근하지 마시고,

자바의 "기본형 변수와 참조형 변수" 대해 접근하셔야합니다. 

자바 기본 서적에 반드시 언급되는 내용이니 한번 책을 찾아보시거나 검색을 해보시기 바랍니다.

광휘 (860 포인트) 님이 2013년 7월 11일 답변
summit님이 2013년 7월 12일 채택됨
0 추천
리스트와 일반변수와의 차이점을 설명하자면, 간단히 말해 리스트는 일반변수 혹은 객체를 특정한 알고리즘(링크드 리스트 등)에 의하여 저장할 수 있는 자료구조 입니다. 자세히 이해하시려면 자료구조 책을 한번 사서 보시면 도움이 되겠네요. 또한 해당 링크드 리스트를 사용하는데 List <Integer> 와 같이 Generic 혹은 Templet 의 개념도 쓰입니다. 자료구조를 다루는 많은 개념이 들어가 있으니 한번 깊게 파 보시면 이번 기회에 도움이 많이 되시리라 생각됩니다. 추가로 덧붙여 LIST와 비슷하게 자료를 담을 수 있는 자료구조는 map, array, tree 등 많이 있습니다. 참고하세요
coooldh (2,510 포인트) 님이 2013년 7월 12일 답변
...