자바에서 List를 만드는 방법은 List를 이용하는 것과 ArrayList를 이용하는 방법이있다.
List<Integer> list = new ArrayList<>();
ArrayList<Integer> list = new ArrayList<>();
근데 둘이 뭐가 다를까?
배열 선언 시 List와 ArrayList
우선 List는 인터페이스다, 인터페이스에 관한 고뇌를 썼던 글이 있는데
이 글을 참고해서 이해하면 좋을 거 같다.
만약 ArrayList로 선언해서 쓰다가 LinkedList로 바꾸고 싶다면?
ArrayList<Integer> list = new ArrayList<>();
list = new LinkedList<>(); // 에러
list가 이미 ArrayList로 선언이 되어 있기에 에러가 뜬다.
List<Integer> list = new ArrayList<>();
list = new LinkedList<>();
왜 이렇게 되냐?
List는 인터페이스고 ArrayList는 이를 구현한 클래스다.
List를 선언한경우 ArrayList와 LinkedList로 받을 수 있다.
이유는 ArrayList와 LinkedList는 List 인터페이스를 구현했기 때문이다.
사실 완전히 아!!! 하고 인터페이스를 이해하지 못했지만 위와같은 사용방법으로 더욱 자유롭게 코드를 만들 수 있을 거 같다.
'TIL' 카테고리의 다른 글
TIL 2023-10-31 Spring과 SpringBoot (0) | 2023.10.31 |
---|---|
TIL 2023-10-30 클래스간의 관계 결정하기 (0) | 2023.10.30 |
TIL 2023-10-26 boolean으로 for문 조회하기 (0) | 2023.10.26 |
TIL 2023-10-25 static이란?? static 정리! (0) | 2023.10.25 |
TIL 2023-10-24 Github Pull Request 가이드, 팀 협업!! (0) | 2023.10.24 |