배열을 공부하다가
ArrayList 라는 것을 접하게 되었다.
ArrayList를 공부할 때는
이것이 배열에 속한 것이라고 생각을 했지만,
ArrayList의 특징은
내가 알고 있는 배열의 특징과는 너무나도 달랐다.
배열(Array) 이란,
연관된 데이터를 모아서 관리하기 위해서 사용되는 데이터 타입이다.
리스트(List) 또한,
연관된 데이터를 모아서 관리하기 위한 것이지만
배열과는 다른 특징들이 있다.
배열과 리스트의 차이점 특징
정리하자면, 첫 번째로
크기 할당 여부 에 있다.
배열은
객체 생성 시 크기 할당이 필수다.
예를 들어,
String [] S = new string[3];
이렇게 크기가 3이라는 정보를 넣어야 한다.
그러나, 리스트는
크기 할당이 필요하지 않다.
ArrayList를 예를 들면,
ArrayList<String> array = new ArrayList<>();
이렇게 크기를 할당하지 않고,
객체를 생성할 수 있다.
두 번째로는
저장 방식 이다.
배열은 정해진 공간이 존재하고,
그 곳에는 인덱스가 존재한다.
int [] array = {1, 2, 3};
이렇게 생성했으면
array[0]의 값은
1이다.
하지만,
리스트는 인덱스가 없다.
앞의 요소가 삭제되면 새로 추가되는 요소가
그 공간에 저장될 수 있다.
또 다른 것으로는
배열의 크기는 length를 쓰고
리스트의 크기는 size를 써야한다는 차이점도 존재한다.
이렇게 보면,
"무조건 리스트가 더 좋은거 아닌가?"
싶지만,
쓰지 않는 메모리 할당이 많아질 수 있기 때문에
크기가 정해져있는 데이터들이라면 배열이 더욱 효율적인 선택이 될 수 있다.
참조
https://suzyalrahala.tistory.com/24
'Data Structure' 카테고리의 다른 글
[Java] 연결리스트(LinkedList)란? (0) | 2022.08.20 |
---|---|
[Java] ArrayList란? - 첫 번째 (0) | 2022.08.19 |
[Java] 배열(Array)이란? (0) | 2022.08.13 |
[Java] Queue(큐)란? (2) | 2022.08.08 |
[Java] Stack(스택)이란 ? (2) | 2022.08.07 |