티스토리 뷰
1. Array와 ArrayList 차이점
일반적으로 Array 또는 ArrayList는 동일한 유형(Type)의 데이터 모음을 묶어서 그룹으로 사용하고 싶을 때 사용됩니다.
배열(Array)은 선언할 때 데이터가 들어갈 공간의 개수(길이)를 지정해야 합니다. 또한 크기가 지정되면 크기를 확장 또는 축소할 수 없습니다. 이것은 크기의 제약이 있는 것으로 주의가 필요합니다
1.1. Array
Array는 크기를 가지고 있는 동일한 유형의 값을 저장하는 곳으로 int, long등과 같은 기본 테이터 유형과 코드에서 작성하는 데이터 객체를 요소로 가질 수 있지만 크기가 지정되어 있어서 축소나 확장을 하지 못하는 특성을 가지고 있습니다. 다음은 배열을 만드는 예제입니다.
코드 1.1-1 : 배열 만들기
1. String 객체로 배열 만들기 | |
변수 products는 ① 크기가 3인 String 객체로 생성 초기값은 null로 할당됨 ② 배열의 요소는 0부터 시작하므로 각각 값 설정 ③ 배열은 참조형으로 products를 출력 시 주소 값이 출력됨 ④ 배열의 값을 표시하기 위해 Arrays.toString() 메서드 사용해야 함 |
|
2. 중괄호를 사용해 배열 만들기 | |
변수 products는 중괄호를 사용해서 배열을 생성 한 예제로 중괄호 안의 요소는 모든 같은 유형(타입)으로 설정해야 합니다. |
1.2. ArrayList
ArrayList는 Array와 같이 동일한 유형의 값을 저장하는 곳이지만 크기를 언제나 변경할 수 있으나 int, long등과 같은 기본 테이터 유형은 사용할 수 없고 기본 데이터 유형에 대응되는 래퍼 클래스를 사용해야 합니다. 다음은 ArrayList를 만드는 예제입니다.
코드 1.1-2 : ArrayList 만들기
1. ArrayList 객체 사용 | |
Collection 객체 중 하나인 ArrayList를 사용한 것으로 ArrayList 인스턴스 화 하여 변수 products 변수에 설정한 후 메소드를 사용하여 값 설정 | |
2. 생성과 동시에 초기값 설정 | |
변수 products는 중괄호를 사용해서 배열을 생성 한 예제로 중괄호 안의 요소는 모든 같은 유형(타입)으로 설정해야 합니다. |
1.3. Array와와 ArrayList 차이점
ArrayList는 Array와 같이 동일한 유형의 값을 저장하는 것이지만 실제 사용 시에는 많은 차이가 있습니다. 기본적으로 Array는 크기가 고정되어 있는 자바의 기본 데이터 유형을 요소로 가질 수 있지만 ArrayList는 크기에 대해서는 유연성을 주고 있지만 자바의 기본 데이터 유형을 사용할 수 없습니다. 다음은 Array와 ArrayList차이점 입니다.
표 1.1-1 : Array와 ArrayList이점
초기화와 선언 | Array은 고정된 크기를 가지므로 크기를 지정해야 하고 ArrayList는 동적 크기를 가지므로 크기를 지정하지 않습니다. | |
저장할 내용 | Array는 int, long등과 같은 기본 테이터 유형과 코드에서 작성하는 데이터 객체를 저장할 수 있지만 ArrayList는 int, long와 같은 기본 테이터 유형은 가질 수 없습니다. 기본형은 사용하기 위해서는 기본형의 래퍼 클래스 (Integer, Long..)를 사용해야 합니다. | |
내용 읽기 | Array는 대괄호안에 인덱스를 지정하여 사용하고 ArrayList는 get() 메소드 안에 인덱스를 지정하여 사용합니다. 인덱스는 Array나 ArrayList는 모두 0 부터 시작합니다 | |
길이 구하기 | Array는 length이고 ArrayList는 size 입니다 | |
축소 및 확장 | Array는 고정된 크기를 가지므로 요소를 축소하거나 확장할 수 없지만 ArrayList는 add, remove등 메소드를 사용하여 자유롭게 할 수 있습니다 | |
요소 변경 | Array는 인덱스를 사용하여 직접 변경, ArrayList는 set 메서드 사용합니다. | |
요소 삭제 | Array는 고정 길이 이므로 삭제를 할 수 없고 ArrayList는 remove 메서드를 사용하여 삭제할 수 있습니다. 삭제 후 크기는 변하게 됩니다. | |
출력 | Array는 배열일 저장된 주소를 출력하지만 ArrayList는 배열의 값을 출력합니다. |
ArrayList는 Array의 래퍼 클래스로 Array를 사용할 때보다는 오버헤드가 발생 하나 Collection 객체의 다양한 기능을 사용해서 유연성을 확보할 수 있으며 스트림 객체와 결합하여 다양한 기능을 쉽게 작성할 수 있습니다.
'Java > 기본' 카테고리의 다른 글
ArrayList와 LinkedList의 차이점 (0) | 2023.05.01 |
---|---|
034. Java Inner Class (0) | 2022.05.31 |
033. Java Generic (0) | 2022.05.25 |
032. Java Class 상속 (0) | 2022.05.24 |
031. Java 외부 구성 요소 (0) | 2022.05.16 |