logo

배열과 ArrayList의 차이점

자바에서는 정렬 그리고 배열목록 잘 알려진 데이터 구조이다. 배열은 Java에서 제공하는 기본 기능인 반면, 배열목록 Java 컬렉션 프레임워크의 클래스입니다. 에 속한다 java.util 패키지.

자바 어레이

정렬 동적으로 생성된 객체입니다. 동일한 유형의 값을 일정하게 유지하는 컨테이너 역할을 합니다. 연속된 메모리 위치를 가지고 있습니다. 배열이 생성되면 크기를 변경할 수 없습니다. 다음 명령문을 사용하여 배열을 만들 수 있습니다.

 int array[]=new int[size]; 

위의 명령문은 지정된 크기의 배열을 생성합니다. 크기보다 더 많은 것을 추가하려고 하면 오류가 발생합니다. ArrayIndexOutOfBoundsException . 예를 들어:

 int arr[]=new int[3]; //specified size of array is 3 //adding 4 elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; 

자바 ArrayList 클래스

자바에서는 배열목록 컬렉션 프레임워크의 클래스입니다. 구현합니다 목록, 수집, 반복 가능, 복제 가능, 직렬화 가능 , 그리고 랜덤액세스 인터페이스. 확장됩니다 추상목록 수업.

다음 명령문을 사용하여 ArrayList의 인스턴스를 만들 수 있습니다.

 ArrayList arrayList=new ArrayList(); 

ArrayList는 Java의 배열에 의해 내부적으로 지원됩니다. ArrayList의 크기 조정 작업에는 새 배열이 포함되고 이전 배열의 콘텐츠가 새 배열로 복사되므로 성능이 저하됩니다. 기본 구현 메서드를 호출합니다. System.arraycopy(초, srcPos, 대상, 대상 위치, 길이) .

ArrayList에는 기본 유형을 저장할 수 없습니다. 따라서 객체만 저장합니다. 기본 유형을 객체로 자동 변환합니다. 예를 들어 ArrayList 객체를 생성했습니다.

 ArrayList list=new ArrayList(); //object of ArrayList arrayObj.add(12); //trying to add integer primitive to the ArrayList 

JVM은 Auto-boxing을 통해 이를 Integer 객체로 변환합니다.

 ArrayList arrayObj=new ArrayList()//object of ArrayList arrayObj(new Integer(12)); //converts integer primitive to Integer object and added to ArrayList object 

유사점

  • Array와 ArrayList는 모두 요소를 저장하는 데 사용됩니다.
  • Array와 ArrayList는 모두 null 값을 저장할 수 있습니다.
  • 중복된 값을 가질 수 있습니다.
  • 요소의 순서를 유지하지 않습니다.

다음 표에서는 배열과 ArrayList의 주요 차이점을 설명합니다.

기초 정렬 배열목록
정의 정렬 동적으로 생성된 객체입니다. 동일한 유형의 값을 일정하게 유지하는 컨테이너 역할을 합니다. 연속된 메모리 위치를 가지고 있습니다. 그만큼 배열목록 자바의 클래스이다 컬렉션 뼈대. 다음과 같은 인기 있는 클래스가 포함되어 있습니다. 벡터, 해시테이블 , 그리고 해시맵 .
정적/동적 배열은 공전 크기가. ArrayList는 동적 크기가.
크기 조정 가능 배열은 고정 길이 데이터 구조. 어레이리스트는 가변 길이 데이터 구조. 필요할 때 자체적으로 크기를 조정할 수 있습니다.
초기화 직접 또는 간접적으로 초기화하는 동안 배열의 크기를 제공하는 것이 필수입니다. 크기를 지정하지 않고 ArrayList의 인스턴스를 만들 수 있습니다. Java는 기본 크기의 ArrayList를 생성합니다.
성능 수행합니다 빠른 고정된 크기로 인해 ArrayList와 비교됩니다. ArrayList는 Java의 배열에 의해 내부적으로 지원됩니다. ArrayList의 크기 조정 작업으로 인해 성능이 저하됩니다.
기본/일반 유형 배열은 두 가지를 모두 저장할 수 있습니다 사물 그리고 기초 요소 유형. 저장할 수 없습니다 원어 ArrayList에 입력하세요. 기본 유형을 객체로 자동 변환합니다.
값 반복 우리는 사용 ~을 위한 루프 또는 각각 배열을 반복하는 루프입니다. 우리는 반복자 ArrayList를 반복합니다.
유형 안전 배열은 변환 가능한 유형의 배열이 아니기 때문에 배열과 함께 제네릭을 사용할 수 없습니다. ArrayList를 사용하면 저장만 가능합니다. 일반적인/ 유형이 있기 때문에 유형이 안전합니다.
길이 어레이는 다음을 제공합니다. 길이 배열의 길이를 나타내는 변수입니다. ArrayList는 다음을 제공합니다. 크기() ArrayList의 크기를 결정하는 방법.
요소 추가 다음을 사용하여 배열에 요소를 추가할 수 있습니다. 과제 운영자. 자바는 추가하다() ArrayList에 요소를 추가하는 메서드입니다.
단일/다차원 배열은 다음과 같습니다. 다차원 . ArrayList는 항상 1차원 .

Java 배열의 예

다음 예에서는 길이가 4인 배열을 만들었습니다.

 public class ArrayExample { public static void main(String args[]) { //creating an array of integer type int arr[]=new int[4]; //adding elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; for(int i=0;i <arr.length;i++) { system.out.println(arr[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 12 2 15 67 </pre> <h2>Example of ArrayList in Java</h2> <p>In the following example, we have created an instance of ArrayList and performing iteration over the ArrayList.</p> <pre> import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 12.4 34.6 56.8 78.9 </pre> <hr></arr.length;i++)>

Java의 ArrayList 예

다음 예에서는 ArrayList의 인스턴스를 생성하고 ArrayList에 대해 반복을 수행했습니다.

 import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } 

산출:

라텍스 매트릭스
 12.4 34.6 56.8 78.9