이 글에서는 배열(Array)을 컬렉션(Collection)으로 변환하는 방법을 단계별로 알아보겠습니다. 컬렉션은 객체 그룹을 저장하고 조작할 수 있는 표준화된 아키텍처를 제공하는 자바의 핵심 프레임워크입니다. 자바 컬렉션을 활용하면 검색, 정렬, 삽입, 조작, 삭제 등 데이터와 관련된 거의 모든 작업을 손쉽게 수행할 수 있습니다.
배열을 컬렉션으로 변환하는 가장 간단한 방법은 java.util.Arrays 클래스가 제공하는 asList() 메서드를 사용하는 것입니다.
문제 시연
입력값
입력 배열: [Java, Python, Scala, Shell]
기대 출력값
배열을 리스트로 변환한 후의 요소: [Java, Python, Scala, Shell]
알고리즘
1단계 - 시작(START) 2단계 - input_array라는 이름의 문자열 배열과 result_list라는 이름의 리스트를 선언한다. 3단계 - 배열에 값을 정의한다. 4단계 - Arrays.asList(input_array)를 결과 리스트에 할당하여 문자열 배열을 컬렉션으로 변환한다. 5단계 - 결과를 화면에 출력한다. 6단계 - 종료(STOP)
예제 1: main 메서드에서 모든 로직 처리하기
아래 예제는 모든 연산을 하나의 main 메서드 안에서 함께 처리하는 방식입니다.
import java.util.*;
public class Demo {
public static void main(String args[]){
String input_array[] = { "Java", "Python", "Scala", "Shell" };
System.out.println("정의된 배열: " + Arrays.toString(input_array));
List result_list = Arrays.asList(input_array);
System.out.println("
배열을 리스트로 변환한 후의 요소: " + result_list);
}
}실행 결과
정의된 배열: [Java, Python, Scala, Shell] 배열을 리스트로 변환한 후의 요소: [Java, Python, Scala, Shell]
예제 2: 객체 지향 방식으로 함수 분리하기
다음 예제는 객체 지향 프로그래밍(OOP) 원칙에 따라 변환 로직을 별도의 메서드로 캡슐화하여 코드의 재사용성과 가독성을 높인 방식입니다.
import java.util.*;
public class Demo {
static void convert_to_list(String input_array[]){
List result_list = Arrays.asList(input_array);
System.out.println("
배열을 리스트로 변환한 후의 요소: " + result_list);
}
public static void main(String args[]){
String input_array[] = { "Java", "Python", "Scala", "Shell" };
System.out.println("정의된 배열: " + Arrays.toString(input_array));
convert_to_list(input_array);
}
}실행 결과
정의된 배열: [Java, Python, Scala, Shell] 배열을 리스트로 변환한 후의 요소: [Java, Python, Scala, Shell]
참고: Arrays.asList() 사용 시 주의사항
Arrays.asList()가 반환하는 리스트는 고정 크기(fixed-size) 리스트라는 점에 유의해야 합니다. 이 리스트는 원본 배열과 데이터를 공유하기 때문에 요소를 추가하거나 삭제하면 UnsupportedOperationException이 발생합니다.
요소의 추가·삭제가 가능한 일반적인 리스트가 필요하다면, 반환된 리스트를 새로운 ArrayList로 감싸서 생성하면 됩니다.
List<String> modifiableList = new ArrayList<>(Arrays.asList(input_array));
이렇게 하면 배열 데이터를 기반으로 하면서도 자유롭게 조작할 수 있는 컬렉션을 얻을 수 있습니다.