데이터를 배열 형식으로 담기 위해서 보통 Array나 ArrayList를 사용하게 되는데, 어떤 상황에서 적절하게 사용해야할지 의문이 들어서 Array와 ArrayList의 차이를 자세히 알아보기로 하였습니다.
배열은 유사한 데이터 유형의 요소를 포함하는 객체입니다. 또한 배열의 요소는 연속 메모리 위치에 유사한 요소를 저장하는 데이터 구조입니다. Java 배열에는 고정된 요소 집합만 저장할 수 있습니다.
ArrayList 클래스는 요소를 저장하기 위해 동적 배열 을 사용합니다. 배열과 비슷하지만 크기 제한이 없습니다. 언제든지 요소를 추가하거나 제거할 수 있습니다. 따라서 기존 어레이보다 훨씬 유연합니다. java.util 패키지 에 있고, C++의 벡터와 같습니다.
ArrayList< int > al = ArrayList< int >(); // 작동하지 않음
ArrayList<Integer> al = new ArrayList<Integer>(); // 잘 작동
ArrayList에 값을 추가할 시, arrayList의 size 변수와 element들을 담고 있는 배열의 길이가 같으면 grow()라는 함수를 호출하는데,
newLength() 함수 내부에서 늘어나야하는 배열의 양을 감지하여 새로이 사이즈를 지정해주는 것을 볼 수 있습니다.
https://zorba91.tistory.com/287
https://no1msh1217.tistory.com/m/12
https://www.javatpoint.com/array-in-java