ArrayList 등의 List를 배열(Array)로 변환하는 java 버전별 방법, 그리고 참조형, 기본형(Integer>int) 등의 여러가지 방법을 정리합니다.
1. List.toArray()
// set List (String) - reference types
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
// 1. toArray() - 배열 선언과 동시에 할당
String[] arr = list.toArray(new String[0]); // ["a", "b", "c"]
//String[] arr = list.toArray(String[]::new); // java11~ 이상
// 2. toArray() - 배열 선언 후 채워 넣음
String[] arr2 = new String[list.size()];
list.toArray(arr2); // ["a", "b", "c"]
List 인터페이스의 toArray() 메서드를 활용하는 방법입니다.
2. Stream API ( Java8 이상 )
// 3. Stream API (Java8 이상)
String[] arr3 = list.stream().toArray(String[]::new);
Java8버전 이상부터 제공되는 Stream API를 사용하는 방법입니다.
3. 기본형(primitive) 배열로의 변환
// set List (Integer)
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
// 4. int 기본형(primitive) 변환 - 전통적인 방법
int[] arr4 = new int[list.size()];
for(int i = 0; i < list.size(); i++){
arr4[i] = list.get(i);
}
// 5. int 기본형(primitive) 변환 - Stream API (Java8 이상)
int[] arr5 = list.stream().mapToInt(i->i).toArray();
1, 2번 방법은 참조형타입(reference types)에만 사용이 가능합니다. Integer > int와 같이 기본형 타입(primitive types)의 배열 변환시에는 위와 같이 1. 반복문을 통한 전통적인 방법이나 2. Stream API의 mapToInt를 활용 할 수도 있습니다.(Java 8이상)
'Program > Java' 카테고리의 다른 글
객체지향 프로그래밍(OOP)이란 무엇인가? (0) | 2022.03.07 |
---|---|
[Java] StringBuilder,StringBuffer 마지막문자 지우기 (0) | 2022.02.23 |
[Java] 2차원 배열 정렬 (오름차순, 내림차순, 다중 조건) (0) | 2022.01.14 |
[Java] StringBuilder,StringBuffer 초기화 최적의 방법은? (1) | 2022.01.11 |
[Java] Array, ArrayList 차이점 (0) | 2021.08.30 |