문제에서 ArrayList를 사용하다가 궁금증이 생겼다.
List말고 왜 ArrayList 를 써야하는가 ? 무슨 차이가 있는가?
일단 그 차이를 알아보기전에
ArrayList 사용 예시를 먼저 보자.
개린이는 처음부터 반복적으로 짚어줘야 기억이 난다..
ArrayList<Integer> numbers = new ArrayList<>();
이 예시는 ArrayList 클래스의 새로운 객체를 생성하여 numbers라는 변수에 할당하는 과정으로 ArrayList가 클래스 이기 때문에 Integer라는 래퍼클래스를 사용하였고,
Integer 타입의 객체만을 담을 수 있도록 제한하는 제네릭 타입으로 사용되는 것이다.
여기서는 Integer가 래퍼클래스이자 제네릭 타입으로 들어오는 것이다.
즉, 해당 예시문은 numbers 라는 이름의 변수를 선언하고, 이 변수는 Integer 타입을 요소로 가지는 ArrayList 객체를 참조하는 것 .
List = 인터페이스
ArrayList = 클래스
Array : 고정된 크기의 요소를 저장할 때 사용
List : 동적으로 크기가 조정될 수 있는 컬렉션을 사용.
순서가 있고 데이터의 중복을 허용하는 Collection 인터페이스.
ArrayList : 다양한 데이터 유형을 저장할 때 사용
List 인터페이스를 상속받아 구현되었으며 순서를 유지하고 데이터의 중복을 허용.
데이터 형태로 Object를 지정하기 때문에 모든 형태의 데이터를 저장할 수 있다.
즉, List 인터페이스 안에 ArrayList 클래스가 있는 것이다.
도형으로 비유를 하자면
List<> Dohyung = new ArrayList<>();
도형<> Dohyung = new 직사각형<>();
.
.
.
ArrayList를 생각이 나서 그냥 썼는데 차이점을 좀 더 알고 써야겠다..