logo

목록과 ArrayList의 차이점

Java 컬렉션은 객체 그룹을 처리하는 아키텍처를 제공합니다. 컬렉션이란 개체의 단일 단위를 의미합니다. 이를 통해 개체 그룹을 단일 단위로 저장하고 조작할 수 있습니다.

컬렉션 프레임워크를 사용하면 개체 그룹에 대한 검색, 정렬, 삽입, 삭제 및 조작과 같은 많은 작업을 쉽게 수행할 수 있습니다.

Java 컬렉션 프레임워크는 여러 인터페이스와 클래스를 제공합니다. 인터페이스에는 다음이 포함됩니다. 세트, 목록 , 큐, 데크 , 클래스에는 다음이 포함됩니다. 배열목록 , 벡터 , 링크드리스트 , 해시세트 , 트리세트 , LinkedHashSet , 그리고 우선순위 대기열 .

내 모니터 크기

이 섹션에서는 두 가지 요소를 차별화합니다. 수집 프레임워크 , 이는 List 및 ArrayList입니다. List는 인터페이스이고 ArrayList는 클래스입니다.

목록과 ArrayList의 차이점

목록 인터페이스

List는 객체의 정렬된 컬렉션을 유지할 수 있게 해주는 Collection 프레임워크의 하위 인터페이스입니다. List를 사용하여 중복 값과 null 요소를 저장할 수 있습니다. 개체에 대한 삽입, 삭제, 검색, 업데이트 작업을 수행하는 인덱스 기반 방법을 제공합니다.

List 인터페이스는 java.util 패키지에서 발생합니다. ArrayList, LinkedList, Stack 및 Vector 클래스를 구현합니다. 이는 또한 List를 정방향 및 역방향으로 반복할 수 있는 ListIterator 클래스의 기반이기도 합니다.

목록 인터페이스는 요소의 위치 액세스 및 삽입을 제공하고 삽입 순서를 유지합니다. List의 인스턴스는 구현 클래스를 사용하여 생성할 수 있습니다.

목록 구현:

ArrayList, LinkedList, Vector를 사용하여 List 인터페이스를 구현할 수 있습니다. 스택 클래스 .

List 인터페이스를 인스턴스화하려면 다음 구문을 사용할 수 있습니다.

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

아래 목록의 예를 살펴보세요.

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

산출:

내 모니터 크기 어떻게 알아?
 [Hello, Java, Tpoint] 

ArrayList 클래스

ArrayList 클래스는 요소를 저장하기 위해 동적 배열을 사용합니다. ArrayList 클래스는 배열처럼 작동하지만 크기 제한이 없습니다. 우리는 원할 때마다 요소를 추가하거나 제거할 수 있습니다. ArrayList 클래스를 사용하여 중복 요소를 저장할 수 있습니다. 삽입 순서를 내부적으로 관리합니다.

ArrayList 클래스는 기존 배열보다 훨씬 더 유연합니다. List 인터페이스의 모든 메소드를 사용하기 위해 List 인터페이스를 구현합니다. 그것은에서 일어난다 자바 .util 패키지.

ArrayList 클래스는 AbstractList 클래스를 상속하고 목록 인터페이스를 구현합니다. 해당 요소는 무작위로 액세스할 수 있습니다. int, char 등과 같은 기본 유형에는 사용할 수 없습니다. 이러한 데이터 유형에는 래퍼 클래스가 필요합니다.

ArrayList 구현:

ArrayList 클래스는 AbstractList 클래스의 모든 메소드를 상속하고 List 인터페이스를 구현합니다.

ArrayList 클래스는 다음과 같이 선언할 수 있습니다.

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList는 다음과 같이 정의할 수 있습니다.

 ArrayList myList = new ArrayList(); 

아래 ArrayList 예를 고려하십시오.

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

산출:

 [Hello, Java, Tpoint] 

목록 인터페이스와 ArrayList 클래스의 몇 가지 주요 차이점

List와 ArrayList의 주요 차이점은 다음과 같습니다.

  • 가장 큰 차이점 중 하나는 List는 인터페이스이고 ArrayList는 클래스입니다. Java 컬렉션 프레임워크의
  • 그만큼 목록은 컬렉션 프레임워크를 확장합니다. , 비교적 ArrayList는 AbstractList 클래스를 확장하고 List 인터페이스를 구현합니다. .
  • List 및 ArrayList의 네임스페이스는 각각 System.Collection.Generic 및 System Collection입니다.
  • 목록은 요소를 순서대로 저장하며 개별 색인 번호로 식별됩니다. 이에 비해 ArrayList는 요소를 동적 배열에 저장합니다. 필요할 때 성장할 수 있습니다.

List를 다음과 같이 정의하면:

 List myList = new ArrayList(); 

이는 List 인터페이스에서만 메서드와 참조 멤버를 호출할 수 있음을 의미합니다.

ArrayList를 다음과 같이 정의하면:

자바 스윙 튜토리얼
 ArrayList myList = new ArrayList(); 

이는 ArrayList에서 사용 가능한 메서드를 호출하고 List 외에 해당 멤버를 사용할 수 있음을 의미합니다.

List와 ArrayList 간의 몇 가지 헤드 비교를 보려면 아래 표를 고려하십시오.

비교 기준 목록 배열목록
일반적인 인터페이스입니다. 수업입니다.
일하다 개별 인덱스 번호로 접근할 수 있는 객체 목록을 생성합니다. 필요할 때 확장할 수 있는 동적 배열을 생성합니다.
구현 목록 목록1= new ArrayList(); ArrayList myList = 새로운 ArrayList();
확장/구현 이는 컬렉션 프레임워크를 확장합니다. AbstractList 클래스를 확장하고 List 인터페이스를 구현합니다.
기본 패키지 java.util java.util
네임스페이스 시스템.컬렉션.일반 시스템.컬렉션
성능 개체를 더 빠르게 조작할 수 있습니다. List에 비해 객체에 대한 조작 속도가 느립니다.
인스턴스화 인스턴스화할 수 없습니다. 인스턴스화할 수 있습니다.

결론

List는 인터페이스이고 ArrayList는 Java Collection 프레임워크의 클래스입니다. List는 정적 배열을 생성하고 ArrayList는 객체를 저장하기 위한 동적 배열을 생성합니다. 따라서 List는 한번 생성되면 확장할 수 없지만 ArrayList를 사용하면 필요할 때 배열을 확장할 수 있습니다.

다형성을 활용하려면 목록 인터페이스를 사용하는 것이 좋습니다. 앞으로는 인터페이스를 구현해야 한다면 프로그램을 변경할 필요가 없을 것입니다.