자바[JAVA] - List와 ArrayList의 차이점

turtleJ·2022년 5월 6일
0

언어

목록 보기
7/11

List와 ArrayList의 차이점이란?

List는 Interface이며 ArrayList는 class이다.

결론부터 말하자면 둘 간의 차이는 위와 같다. 하지만 List와 ArrayList의 차이점을 궁금하게 된 주 경로는 바로 아래의 코드의 차이점이 궁금하기 때문일 것이다.

ArrayList <Object> list = new ArrayList <>();
List <Object> list = new ArrayList <>();  

결국 둘다 ArayList 클래스의 인스턴스를 생성하는 것은 같다. 하지만 그 인스턴스를 저장하는 변수의 자료형의 차이가 있다.

그렇다면 이 차이는 자바의 다형성(Polymorphism)이라는 개념으로 생각해볼 수 있다.

다형성(Polymorphism)이란?

하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다.

이전 포스트의 한 부분을 보면
List가 ArrayList를 상속하고 있는 것을 알 수 있다. 따라서 더 상위에 있는 List인터페이스가 더 다양한 데이터 타입을 인스턴스로 받을 수 있다. 코드의 유연함을 제공한다고 할 수 있다.

이를 도형에 비유하여 생각해자

List list = new ArrayList();

-> 도형 list = new 정사각형();
-> 도형 list = new 직사각형();
-> 도형 list = new 삼각형();

ArrayList list = new ArrayList();

-> 정사각형 list = new 정사각형();

위와 같이 도형을 데이터 타입으로 사용한 경우는 다양한 인스턴스를 받을 수 있지만, 정사각형을 사용하면 다른 도형들은 받을 수 없게된다.

이처럼 List와 ArrayList 데이터 타입의 차이는 코드의 유연함에 있다고 할 수 있다.

profile
꾸준함을 무기로 성장하는 개발자가 되겠습니다.

0개의 댓글