반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 인텔리제이
- 정규식
- Visual Studio Code
- json
- string
- 자바
- html
- ArrayList
- Eclipse
- windows
- CMD
- date
- IntelliJ
- 이탈리아
- 문자열
- Array
- list
- Maven
- 이클립스
- Button
- input
- 자바스크립트
- CSS
- 테이블
- table
- js
- vscode
- Java
- 배열
- javascript
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Arrays.asList()로 배열을 리스트로 바꾸기 본문
자바에서 배열과 리스트는 서로 다른 자료구조이지만, 간단하게 변환할 수 있는 방법이 있습니다.
그중 가장 자주 쓰이는 메서드가 바로 Arrays.asList()
입니다.
1. Arrays.asList()란?
- 배열을 **리스트(List)**로 감싸서 반환합니다.
List
인터페이스를 구현한 고정 크기 리스트를 리턴합니다.- 반환된 리스트는 원본 배열과 연결(linked)되어 있어, 한쪽을 수정하면 다른 쪽에도 반영됩니다.
👉 메서드 시그니처:
public static <T> List<T> asList(T... a)
2. 기본 사용 예제
import java.util.Arrays;
import java.util.List;
public class AsListExample1 {
public static void main(String[] args) {
String[] fruits = {"Apple", "Banana", "Cherry"};
List<String> fruitList = Arrays.asList(fruits);
System.out.println(fruitList);
}
}
실행 결과
[Apple, Banana, Cherry]
👉 배열이 간단히 리스트로 변환됩니다.
3. 리스트와 배열의 연결성
리스트를 변경하면 원본 배열에도 반영됩니다.
import java.util.Arrays;
import java.util.List;
public class AsListExample2 {
public static void main(String[] args) {
String[] fruits = {"Apple", "Banana", "Cherry"};
List<String> fruitList = Arrays.asList(fruits);
fruitList.set(1, "Blueberry");
System.out.println(Arrays.toString(fruits));
}
}
실행 결과
[Apple, Blueberry, Cherry]
👉 fruitList
를 수정했더니 원본 배열도 변경되었습니다.
4. 주의사항 (UnsupportedOperationException)
Arrays.asList()
로 만든 리스트는 크기 변경이 불가능합니다.
즉, add()
나 remove()
같은 메서드를 호출하면 예외가 발생합니다.
import java.util.Arrays;
import java.util.List;
public class AsListExample3 {
public static void main(String[] args) {
List<String> list = Arrays.asList("A", "B", "C");
list.add("D"); // 예외 발생!
}
}
실행 결과
Exception in thread "main" java.lang.UnsupportedOperationException
👉 이유: Arrays.asList()
는 원본 배열 기반의 고정 크기 리스트이기 때문입니다.
5. 자유롭게 추가/삭제 가능한 리스트로 변환하기
new ArrayList<>(Arrays.asList(...))
형태로 감싸주면 크기 변경이 가능한 리스트를 만들 수 있습니다.
import java.util.*;
public class AsListExample4 {
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
list.add("D"); // 정상 작동
list.remove("B");
System.out.println(list);
}
}
실행 결과
[A, C, D]
👉 이렇게 하면 일반적인 ArrayList
처럼 자유롭게 사용할 수 있습니다.
6. 기본형 배열 주의사항
int[]
같은 기본형 배열을 넣으면, 리스트에 배열 전체가 한 개의 요소로 들어갑니다.
import java.util.Arrays;
import java.util.List;
public class AsListExample5 {
public static void main(String[] args) {
int[] numbers = {1, 2, 3};
List<int[]> list = Arrays.asList(numbers);
System.out.println(list.size());
System.out.println(list.get(0));
}
}
실행 결과
1
[I@6d06d69c
👉 즉, 기본형 배열은 **박싱(wrapper class)**을 사용해야 합니다.
List<Integer> list = Arrays.asList(1, 2, 3);
7. 정리
Arrays.asList()
: 배열을 리스트로 간단히 변환- 반환된 리스트는 고정 크기라서
add/remove
불가 - 원본 배열과 연결되어 있음
- 크기 변경 가능한 리스트가 필요하다면
new ArrayList<>(Arrays.asList(...))
사용 - 기본형 배열은 직접 박싱해야 올바르게 변환 가능
👉 배열을 리스트로 바꿀 때는 Arrays.asList()
를 쓰되, 크기 변경이 필요하다면 꼭 new ArrayList<>(...)
로 감싸자!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Arrays.deepToString()으로 다차원 배열 출력하기 (0) | 2025.08.31 |
---|---|
[Java 기초] Arrays.deepEquals()로 다차원 배열 비교하기 (0) | 2025.08.30 |
[Java 기초] Arrays.setAll()로 배열 값 채우기 (0) | 2025.08.29 |
[Java 기초] Arrays.binarySearch()로 배열 검색하기 (0) | 2025.08.29 |
[Java 기초] Arrays.copyOfRange()로 배열 구간 복사하기 (1) | 2025.08.28 |
Comments