study gomi

Java 배열(Array)과 리스트(List) 비교 / 차이 / 설명 본문

basic/java

Java 배열(Array)과 리스트(List) 비교 / 차이 / 설명

공부하곰 2024. 6. 4. 16:05
728x90
반응형

배열(Array)

- 고정 크기 : 생성할 때 크기가 고정됨 => 한 번 생성된 배열은 크기를 변경할 수 없음.

- 동일한 데이터 타입 : 배열은 동일한 데이터 타입의 요소들만 저장할 수 있음.

- 직접적인 메모리 접근 : 배열은 메모리에서 연속된 위치에 저장되어 있어 인덱스를 통해 빠르게 접근 가능.

- 문법 : 배열을 생성할 때는 `new`키워드를 사용하거나 중괄호`{}`를 사용하여 초기화함.

int[] intArray = new int[5]; // 크기가 5인 정수형 배열
String[] strArray = {"a", "b", "c"}; // 초기화된 문자열 배열

 

리스트(List)

- 가변 크기 : 크기가 동적으로 변경됨 => 요소를 추가하거나 제거할 수 있다.

- 컬렉션 프레임워크 : 리스트는 자바 컬렉션 프레임워크의 일부(다양한 메서드와 기능을 제공)

- 다양한 구현 : List는 인터페이스이고, `ArrayList`나 `LinkedList` 등의 다양한 구현이 있음.

- 문법 : 리스트를 생성할 때는 `new` 키워드를 사용하며, 초기화에는 `Arrays.asList()` 또는 다른 컬렉션 메서드를 사용.

List<Integer> intList = new ArrayList<Integer>(); // 정수형 ArrayList
List<String> strList = Arrays.asList("a", "b", "c"); // 고정 크기 리스트

- ArrayList 생성자에는 (배열이 아닌) `Collection` 타입을 인수로 전달해주어야 함.

더보기

import java.util.ArrayList;
import java.util.Arrays;

import java.util.List;

 

주요 차이점 요약

- 크기 : 배열은 고정 크기, 리스트는 가변 크기

- 성능 : 배열은 메모리 접근 속도가 빠름. 리스트는 요소를 추가하거나 제거할 수 있어 유연함.

- 기능 : 리스트는 컬렉션 프레임워크의 일부로 다양한 메서드를 제공. 배열은 기본적인 데이터 저장만 제공.

- 코드 비교

// 배열 에제
String[] strArray = {"s", "a", "m", "p", "l", "e"};

// 리스트 예제
List<String> strList = new ArrayList<String>(Arrays.asList("s", "a", "m", "p", "l", "e");

- 정리 : 배열은 단순하고 메모리 효율적이지만 크기가 고정되어 있어 유연성이 부족, 리스트는 크기가 동적이며 다양한 유틸리티 메서드를 제공하여 더 유연하게 사용 가능.

 

문자열을 리스트로 변환

String s = "sample";
String[] strArr = s.split("");
ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArr));

1. String s = "sample";

- 문자열 변수 `s`에 `sample`이라는 값을 할당.

- 즉, s는 문자열 sample을 참조하게 됨.

 

2. String[] strArr = s.split("");

- s문자열을 split 메서드를 사용하여 빈 문자열("")을 기준으로 분리.

- split("")은 문자열의 각 문자를 개별 요소로 가지는 문자열 배열을 생성함.

- 결과적으로 strArr는 {"s", "a", "m", "p", "l", "e"}와 같은 배열이 됨.

 

3. ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArr));

- Arrays.asList(strArr)는 strArr 배열을 리스트로 변환함.

- 이 리스트는 고정 크기의 리스트이지만, 이 리스트를 'ArrayList' 생성자의 인수로 전달하여 가변 크기의 리스트로 만듦.

- 결과적으로 'list'는 ArrayList 객체로 {"s", "a", "m", "p", "l", "e"}의 요소들을 가지게 됨.


(다음 글) List와 ArrayList의 차이

https://taetaegom.tistory.com/82

 

Java List와 ArrayList 차이 (인터페이스와 클래스 / new 키워드)

이전 글 (배열과 리스트의 차이) : https://taetaegom.tistory.com/81 한 번 생성된 배열은 크기를 변경할 수 없음.- 동일한 데이터 타입 : 배열은 동일한 데이터 타입의 요소들만 저장할 수 있음.- 직접적인

taetaegom.tistory.com

- 내가 헷갈리는 부분이 있어서 따로 정리해봤음!

728x90
반응형