알고리즘을 풀면서 크기를 알면 리스트, 모르면 배열을 사용해왔는데 구체적으로 어떠한 차이가 있는지, 기능적 차이가 있는지 궁금해서 정리하게 됨
기본 유형, 참조 유형이란??
기본 유형 : boolean, byte, short, int, long, float, double, char
참조 유형 : class, interface, array
기본 유형의 변수는 값을 직접 저장하는 반면 참조 유형의 변수는 객체에 대한 참조를 저장
기본 유형의 변수의 크기는 값의 크기와 같지만 참조 유형의 변수의 크기는 객체의 크기와 같이 않다
기본 유형의 변수는 객체의 멤버가 될 수 없지만 참조 유형의 변수는 객체의 멤버가 될 수 있다
// 배열
// 배열
int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
// 리스트
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
// 배열
int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
// ArrayList
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
// 배열의 크기를 변경할 수 없습니다.
arr.length = 10; // 오류
// ArrayList의 크기를 변경할 수 있습니다.
list.size = 10; // OK