이 글에서는 자바(Java)에서 컬렉션(Collection)을 배열(Array)로 변환하는 방법을 알아보겠습니다.
컬렉션 프레임워크는 객체 그룹을 저장하고 조작할 수 있는 표준화된 아키텍처를 제공합니다. 자바 컬렉션을 활용하면 검색, 정렬, 삽입, 조작, 삭제 등 데이터와 관련된 거의 모든 연산을 손쉽게 수행할 수 있습니다.
예시 시나리오
먼저 입력값과 기대 출력 결과를 살펴보겠습니다.
입력값:
Input list: [Java , program , is , fun]
기대 출력 결과:
배열로 변환한 결과: Java program is fun
알고리즘
컬렉션을 배열로 변환하는 절차는 다음과 같습니다.
Step 1 - 시작 Step 2 - input_list라는 이름의 리스트와 result_string이라는 이름의 문자열 배열을 선언한다. Step 3 - 값을 정의한다. Step 4 - input_list.toArray(new String[0])의 반환값을 result_string 배열에 할당하여 리스트를 문자열 배열로 변환한다. Step 5 - 결과를 출력한다. Step 6 - 종료
예제 1: main 함수 안에서 모든 로직 처리하기
첫 번째 예제는 모든 연산을 하나의 main 함수 안에서 처리하는 방식입니다.
import java.util.ArrayList;
import java.util.*;
public class Demo {
public static void main(String[] args){
System.out.println("Required packages have been imported");
List<String> input_list = new ArrayList<String>();
input_list.add("Java ");
input_list.add("program ");
input_list.add("is ");
input_list.add("fun");
System.out.println("The list is defined as:" + input_list);
System.out.println("
The result after converting to an array is:");
String[] result_string = input_list.toArray(new String[0]);
for (int i = 0; i < result_string.length; i++) {
String element = result_string[i];
System.out.print(element);
}
}
}실행 결과
Required packages have been imported The list is defined as:[Java , program , is , fun] The result after converting to an array is: Java program is fun
예제 2: 객체 지향 방식으로 함수 분리하기
두 번째 예제는 연산 로직을 별도의 함수로 캡슐화하여 객체 지향 프로그래밍(OOP) 스타일로 구현한 방식입니다. 코드의 재사용성과 가독성이 향상된다는 장점이 있습니다.
import java.util.ArrayList;
import java.util.*;
public class Demo {
static void convert_to_array(List<String> input_list){
System.out.println("
The result after converting to an array is:");
String[] result_array = input_list.toArray(new String[0]);
for (int i = 0; i < result_array.length; i++) {
String element = result_array[i];
System.out.print(element);
}
}
public static void main(String[] args){
System.out.println("Required packages have been imported");
List<String> input_list = new ArrayList<String>();
input_list.add("Java ");
input_list.add("program ");
input_list.add("is ");
input_list.add("fun");
System.out.println("The list is defined as:" + input_list);
convert_to_array(input_list);
}
}실행 결과
Required packages have been imported The list is defined as:[Java , program , is , fun] The result after converting to an array is: Java program is fun
핵심 포인트 정리
toArray(new String[0])메서드를 사용하면 리스트를 손쉽게 문자열 배열로 변환할 수 있습니다.- 인자로 전달되는 크기가 0인 배열은 자바가 내부적으로 적절한 크기의 새 배열을 생성하도록 유도합니다.
- 변환된 배열은 일반적인
for루프나 향상된for-each문으로 순회할 수 있습니다.