List vs ArrayList

Nadia·2024년 2월 6일

Java

목록 보기
1/4
post-thumbnail

List vs ArrayList

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

ArrayList<Integer> list = new ArrayList<Integer>();



List

: 인터페이스 (도형)

List를 자료형으로 선언한 경우, 구현체를 ArrayList로도 구현할 수 있지만 LinkedList로 구현할 수 있다.

  • 인터페이스: 클래스 내에 선언된 모든 메서드가 추상 메서드인 클래스
List<Integer> list = new ArrayList<Integer>();

list = new LinkedList<Integer>(); // 구현체 호환 가능

ArrayList

: List 인터페이스를 구현한 클래스 (정사각형)

ArrayList를 자료형으로 선언한 경우, LinkedList를 생성하거나 형변환을 할 수 없다.

ArrayList<Integer> list = new ArrayList<Integer>();

list = new LinkedList<Integer>(); // error 발생



결론: ArrayList < List

List는 인터페이스, ArrayList는 List를 구현한 클래스

List로 선언을 한 경우,
인스턴스를 ArrayList로 받을 수 있고 LinkedList로 받을 수 있다.
ArrayList, LinkedList 둘 다 List 인터페이스를 구현했기 때문이다.

ArrayList로 선언한 경우,
ArrayList의 인스턴스를 만들어야 하므로 ArrayList로 받아야 한다.
LinkedList로는 ArrayList를 인스턴스를 만들 수 없기 때문이다.




참고 블로그
https://yoon-dailylife.tistory.com/7
https://velog.io/@dnwlsrla40/List-ArrayList-%EB%B0%B0%EC%97%B4-%EC%84%A0%EC%96%B8-%EC%8B%9C-List%EC%99%80-ArrayList-%EC%B0%A8%EC%9D%B4

profile
비전공자 개발 일기

0개의 댓글