[Java] List와 ArrayList

아현·2021년 12월 22일
1

Java

목록 보기
7/13

출처

List와 ArrayList의 차이점


List = 인터페이스
ArrayList = 클래스



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

  • 2가지 모두 같은 결과를 도출합니다.

    • 하지만 List를 사용해 ArrayList를 생성하는 것은 유연성에서 효과를 볼 수 있습니다.



유연성 - Generic


  • Generic은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미합니다.

    • 한마디로 특정 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입입니다.

  • 인스턴스의 형 변환을 통해 내부 디테일과 메모리 함축에서 이점과 성능을 개선시킬 수 있습니다.

    • 데이터의 용도에 따라 빠른 탐색을 위해서 ArrayList를 사용할 때도 있고, 삽입/삭제를 위해 LinkedList를 사용해야 하는 경우도 있습니다.

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

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

도형에 비유하여 풀어보면, 클래스를 생성할 때 도형 타입으로 생성하게 되면 정사각형이 아닌 다른 직사각형, 삼각형 등 도형 인터페이스를 구현한 클래스에서 사용 될 수 있습니다.
하지만 정사각형 클래스로 생성하게 되면 직사각형, 삼각형 등 에서는 사용할 수 없습니다.

List list = new ArrayList();
//-> 도형 list = new 정사각형(); 
ArrayList list = new ArrayList();
//-> 정사각형 list = new 정사각형();

-> 데이터의 삽입이나 삭제가 필요한 상황에서 List로 선언한 인스턴스를 LinkedList로 바꾸게 되면 아무런 문제없이 LinkedList의 장점을 취할 수 있습니다.



profile
For the sake of someone who studies computer science

0개의 댓글