코딩테스트를 배열을 리스트로 ,리스트를 배열로 변환 과정이 필요하다.
어떤 방법들로 바꿔줄 수 있는지 알아보자.
배열 ➔ List 로 바꾸는 방법
- Arrays.asList() // 배열의 값을 바꿀때 주로 사용
- new ArrayList<>(Arrays.asList()) // 배열의 값을 추가하거나 제거해서 길이가 변할 때
- Collectors.toList //스트림을 이용하여 전체 배열을 변환할 때
List ➔ 배열 로 바꾸는 방법
- List.toArray()
배열 ➔ List 로 바꾸는 방법
✅ 1. Arrays.asList()
import java.util.Arrays;
import java.util.List;
String[] arr ={"A","B","C"};
List<String> list = Arrays.asList(arr);
System.out.println(list);
//[A, B, C]
✅ 2. new ArrayList<>(Arrays.asList())
❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
String[] arr ={"A","B","C"};
List<String> list = Arrays.asList(arr);
list.add("D");
//예외 발생
System.out.println(list);
❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
위의 코드를 이용해 배열에 D를 추가하면 기존의 arr 의 배열 길이는 고정길이이기 때문에 예외가 발생한다.
그러므로 가변적으로 길이를 바꿀 수 있는 ArrayList로 변환하는 것이 바람직 하다.
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
String[] arr ={"A","B","C"};
List<String> list = new ArrayList<>(Arrays.asList(arr)); //ArrayList 객체생성
list.add("D");
System.out.println(list);
//[A, B, C, D]
✅ 3.Collectors.toList()
Stream 을 이용하여 배열을 리스트로 변환 할수도 있다.
import java.util.List;
import java.util.stream.*;
String[] arr ={"A","B","C"};
List<String> list = Stream.of(arr).collect(Collectors.toList());
System.out.println(list);
//[A, B, C]
List ➔ 배열 로 바꾸는 방법
✅ 1. List.toArray()
list의 사이즈를 구해서 새로운 String 배열을 생성하면된다.
import java.util.List;
import java.util.stream.*;
import java.util.Arrays;
String[] arr ={"A","B","C"};
List<String> list = Stream.of(arr).toList();
int listSize = list.size();
String[] array = list.toArray(new String[listSize]);
System.out.println(Arrays.toString(array));
//[A, B, C]
⚠️주의: Arrays.toString() 을 사용하지 않고 array배열만 출력하면 주소값만 나오게 된다.
다음 글은 Integer 형의 배열과 리스트를 변환하는 과정을 알아볼려고 한다.
'Java' 카테고리의 다른 글
[Java]String 메소드 총정리 (1) | 2025.03.07 |
---|---|
[Java]문자열을 배열로 변환하는 방법 (0) | 2025.03.06 |
[Java]valueOf()를 이용한 형변환 (0) | 2025.03.04 |
[Java]Enum이란? & 사용법 (0) | 2025.02.28 |
[Java]코드 스타일 및 명명 규칙 (0) | 2025.02.24 |