추천, 2024

에디터의 선택

Java의 List와 ArrayList의 차이점

List와 ArrayList는 Collection 프레임 워크의 멤버입니다. List는 각 요소가 객체이고 요소가 해당 위치 (색인)에 의해 액세스되는 순서의 요소 모음입니다. ArrayList는 필요할 때마다 크기가 증가하거나 감소하는 동적 객체 배열을 만듭니다. List와 ArrayList의 주된 차이점은 List는 인터페이스이고 ArrayList 는 클래스라는 것입니다. 아래 비교 차트의 도움으로 List와 ArrayList의 차이점을 알아 보겠습니다.

비교 차트

비교의 근거명부ArrayList
기본인터페이스 목록ArrayList는 표준 Collection 클래스입니다.
통사론인터페이스 목록ArrayList 클래스
확장 / 구현List 인터페이스는 Collection Framework를 확장합니다.ArrayList는 AbstractList를 확장하고 List Interface를 구현합니다.
네임 스페이스System.Collections.Generic.System.Collections.
작업색인 번호와 연관된 요소 (오브젝트) 목록을 작성하는 데 사용됩니다.ArrayList는 객체가 포함 된 동적 배열을 만드는 데 사용됩니다.

목록의 정의

List는 Collection 프레임 워크를 확장하는 인터페이스 입니다. 목록 인터페이스는 순차적으로 정렬되는 요소의 컬렉션을 설명합니다. List 인터페이스는 ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack 과 같은 표준 컬렉션 클래스로 구현됩니다. 목록 인터페이스에는 색인 번호와 연관된 요소가 있습니다. 목록의 위치 (색인)를 사용하여 목록의 요소에 액세스 할 수 있습니다. List 인터페이스를 사용하여 작성된 목록은 0부터 시작하는 색인으로 시작합니다.

Collection 프레임 워크에 의해 상속 된 메소드 외에도 List 인터페이스는 자체적 인 메소드를 정의합니다. List 인터페이스에 의해 추가 된 메소드는, add (int, E)addAll (int, Collection) 입니다. 이 메소드는 인덱스로 요소를 목록에 추가합니다. 메소드가리스트를 변경할 수없는 경우, 리스트 내의 메소드는 UnsupportedOperationException 와 같은 예외를 Throw합니다. 목록의 한 객체가 목록의 다른 객체와 호환되지 않으면 ClassCastException 이 throw됩니다. 목록에 null 객체를 삽입하려고하면 NullPointerException 이 throw되고 Null 요소는 목록에 허용되지 않습니다.

get () 메소드를 사용하여 목록에서 요소를 가져올 수 있습니다. set () 메서드를 사용하여 목록의 요소 값을 설정할 수 있습니다. 메서드 sublist ()를 사용하여 목록에서 하위 목록을 가져올 수도 있습니다. 목록 대신 하위 목록에서 작업하는 것이 편리합니다.

ArrayList의 정의

표준 Collection 클래스 중 하나는 AbstractList 클래스를 확장하고 List 인터페이스를 구현하는 ArrayList입니다. ArrayList 클래스는 필요에 따라 확장되고 축소되는 동적 배열을 만드는 데 사용됩니다. ArrayList 클래스를 사용하여 만든 목록은 객체 배열에 불과합니다. Java에서는 표준 배열의 길이가 고정되어 있으므로 사전에 배열의 크기를 알아야합니다. 그러나 런타임까지 필요한 배열의 길이를 모를 수도 있습니다. 따라서 Collection 프레임 워크는이 문제를 극복하기 위해 ArrayList 클래스를 도입했습니다.

ArrayList에는 초기 용량으로 배열을 만드는 생성자가 있습니다. 요소가 배열에 추가 될 때 ArrayList 클래스의 객체 용량이 자동으로 증가하지만 ensureCapacity () 메서드를 사용하여 ArrayList 객체의 용량을 수동으로 늘릴 수 있습니다. 나중에 메모리를 재 할당하는 대신 초기에 어레이의 용량을 늘리는 것이 좋습니다. 재 할당은 한 번에 메모리를 할당하는 것보다 비용이 많이 듭니다.

List와 ArrayList의 주요 차이점

  1. List와 ArrayList의 가장 중요한 차이점 중 하나는 list가 인터페이스 이고 ArrayList가 표준 Collection 클래스라는 것 입니다.
  2. List 인터페이스는 Collection 프레임 워크를 확장하는 반면, ArrayList는 AbstractList 클래스를 확장하고 List 인터페이스를 구현합니다.
  3. List 인터페이스의 네임 스페이스는 System.Collection.Generic 이고 반면에 ArrayList의 네임 스페이스는 System.Collection 입니다.
  4. 목록 인터페이스는 시퀀스에 저장되고 색인 번호로 식별되거나 액세스되는 요소의 콜렉션을 작성합니다. 한편, ArrayList는 필요할 때 배열이 동적으로 커질 수있는 객체 배열을 만듭니다.

결론:

ArrayList는 표준 Java에서 정적 배열의 문제를 극복합니다. 즉, 배열은 일단 만들어지면 크기가 커질 수 없습니다. ArrayList를 사용하여 배열을 만들면 필요할 때 크기가 커지고 작아 질 수있는 동적 배열이 만들어집니다. 표준 Collection 클래스 ArrayList는 List 인터페이스를 확장합니다.

Top