일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 프로그래머스
- 자바리스트정렬
- Dependency
- android
- Provider
- Hilt
- 오블완
- Java
- 백준파이썬
- 배열
- composelifecycle
- jetpack
- 자료형
- 파이썬문법
- 자바
- disposableeffect
- 자바set
- 파이썬
- list
- ContentProvider
- Python
- Kotlin
- 리스트
- compose
- filternotnull()
- 문자열
- programmers
- nullpointerexception방지
- 백준
- 티스토리챌린지
- Today
- Total
study gomi
Java 배열(Array)과 리스트(List) 비교 / 차이 / 설명 본문
배열(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
- 내가 헷갈리는 부분이 있어서 따로 정리해봤음!
'basic > java' 카테고리의 다른 글
Java 문자열 빈 문자열인지 확인하기 (0) | 2024.06.05 |
---|---|
Java List와 ArrayList 차이 (인터페이스와 클래스 / new 키워드) (0) | 2024.06.04 |
Java 대소문자 변환 / StringBuilder 클래스 정리 (0) | 2024.05.28 |
Java 출력하기 정리 (숫자-정수/실수, 문자열, 여러 가지 타입 - 포맷팅) (0) | 2024.05.23 |
Java 사용자에게서 입력 받기 정리 (Scanner 클래스 사용) (0) | 2024.05.23 |