Array(배열) 과 ArrayList 의 차이가 궁금해져 정리하게 되었다.
|
Array(배열) |
ArrayList |
사이즈 |
초기화 할때 명시하여 고정시킨다.
String[] arr = new String[3]; |
초기화 시 사이즈를 명시하지 않는다. 크기가 가변적이며 Default 크기는 10이다.
ArrayList<String> arr_list = new ArrayList<String>(); |
속도 |
초기화 시 메모리에 할당하므로 ArrayList 보다 빠르다. |
데이터 추가 및 삭제 시 메모리를 재할당하기 때문에 속도가 Array 보다 느리다. |
크기 변경 |
사이즈 변경 불가 |
추가, 삭제 가능
add(), remove() |
아래 예시를 보자
String[] arr = new String[3];
ArrayList<String> arr_list = new ArrayList<String>();
System.out.println("데이터 저장전 arr size : "+arr.length);
System.out.println("데이터 저장전 arr list size : "+arr_list.size());
arr[0] = "obo";
arr[1] = "obo2";
arr[2] = "obo3";
arr_list.add("배고파");
arr_list.add("너무 배고파..");
arr_list.add("얼른 점심시간 왔으면..");
System.out.println("데이터 저장 후 arr size : "+arr.length);
System.out.println("데이터 저장 후 arr list size : "+arr_list.size());
String Array 의 기본 초기화 값은 3이다.
ArrayList 는 초기화가 필요 없으므로 초기화 하지 않았다.
데이터 저장 전 size 를 보면 기본 초기화를 한 Array 는 3이고 초기화를 하지 않은 ArrayList 는 0이다.
데이터 저장 후는 초기화를 한 Array 는 고정 크기인 3이며, ArrayList 는 저장한 개수만큼 size 가 늘어났다.
ArrayList 의 기본 크기값은 10이다.
아래는 ArrayList 의 클래스이다. 기본적으로 크기는 10이며,
10을 초과했을 경우 메모리를 재할당하면서 크기가 늘어난다.
Array 배열은 크기가 고정되어 있다고 했다.
만약 크기가 3인 arr 배열의 4번째 Index 에 값을 넣었을 경우는 어떻게 될까?
String[] arr = new String[3];
ArrayList<String> arr_list = new ArrayList<String>();
System.out.println("데이터 저장전 arr size : "+arr.length);
System.out.println("데이터 저장전 arr list size : "+arr_list.size());
arr[3] = "obo";
arr_list.add("배고파");
arr_list.add("너무 배고파..");
arr_list.add("얼른 점심시간 왔으면..");
System.out.println("데이터 저장 후 arr size : "+arr.length);
System.out.println("데이터 저장 후 arr list size : "+arr_list.size());
Array Index 에 대한 에러가 발생한다.