Java에서 배열을 초기화할 때는 Arrays.asList() 메서드와 ArrayList 클래스가 주로 사용됩니다. 일반적인 List 인터페이스는 직접 객체를 생성할 수 없기 때문에, 빈 리스트를 만들려면 ArrayList 클래스가 필요합니다. 그리고 Arrays.asList() 메서드를 활용하면 생성된 리스트에 기본값을 손쉽게 담아 초기화할 수 있습니다.
리스트 초기화란 배열에 값들의 집합을 할당하는 과정을 말합니다. Java에서 ArrayList를 다루려면 리스트를 어떻게 초기화하는지 반드시 알고 있어야 합니다.
이때 유용하게 쓰이는 것이 바로 Java의 Arrays.asList() 메서드입니다. 이 메서드를 사용하면 ArrayList를 간편하게 초기화할 수 있습니다.
이 글에서는 예제와 함께 asList() 메서드를 사용해 Java에서 ArrayList를 초기화하는 방법을 자세히 살펴보겠습니다. 글을 끝까지 읽으면 전문가처럼 리스트를 초기화할 수 있게 될 것입니다.
Java ArrayList란?
Java에서 List 인터페이스는 데이터를 순차적으로 저장할 수 있는 다양한 기능을 제공합니다. 하지만 List는 Java 컬렉션 프레임워크의 인터페이스이기 때문에, 인터페이스로부터 직접 리스트 객체를 생성할 수는 없습니다. Java의 인터페이스는 객체 생성 용도로 사용할 수 없기 때문입니다.
ArrayList는 List 인터페이스를 구현한 클래스로, 크기를 동적으로 조절할 수 있는 배열(resizable array)을 만들 수 있게 해줍니다.
Java에서 일반 배열은 고정된 크기를 가집니다. 배열을 선언할 때 반드시 크기를 지정해야 하며, 한 번 설정된 크기는 변경하기가 까다롭습니다.
이러한 배열 크기 변경의 어려움을 해결하는 방법 중 하나가 바로 ArrayList 클래스를 사용하는 것입니다. ArrayList에 저장된 데이터는 손쉽게 크기를 늘리거나 줄일 수 있기 때문에, 많은 개발자들이 배열 형태로 데이터를 저장할 때 ArrayList를 선호합니다.
ArrayList 클래스 임포트하기
ArrayList를 코드에서 사용하려면 먼저 해당 클래스를 임포트해야 합니다. 아래 코드를 통해 Java 프로그램에 클래스를 가져올 수 있습니다:
import java.util.ArrayList;
클래스를 임포트했다면 이제 코드에서 ArrayList를 생성할 수 있습니다. Java에서 ArrayList를 만드는 기본 문법은 다음과 같습니다:
ArrayList<Type> arrayName = new ArrayList<>();
각 구성 요소의 의미는 다음과 같습니다:
- ArrayList: 배열 리스트(array list)를 생성하겠다고 프로그램에 알립니다.
- Type: 리스트에 저장할 데이터의 타입입니다.
- arrayName: 생성하는 배열 리스트의 이름입니다.
- new ArrayList<>():
ArrayList의 새 인스턴스를 생성하고 해당 변수에 할당합니다.
Java에서 ArrayList 초기화하기
Java에서는 일반 배열을 선언과 동시에 값을 직접 할당하여 초기화할 수 있습니다. 하지만 ArrayList는 그렇지 않습니다.
ArrayList에 값을 추가할 때는 일반적으로 add() 메서드를 사용합니다. 예를 들어, 다음 코드는 도시 리스트에 'London'이라는 값을 추가하는 프로그램입니다:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> cities = new ArrayList<>();
cities.add("London");
System.out.println("Cities: " + cities);
}
}
이 코드를 실행하면 다음과 같은 결과가 출력됩니다:
Cities: [London]
이 방식은 몇 개의 값만 추가할 때는 충분히 괜찮습니다. 하지만 만약 기존 배열에 있는 20개의 값을 ArrayList에 추가해야 한다면 어떨까요?
이럴 때 Arrays.asList() 메서드를 사용하면 ArrayList 초기화의 한계를 극복하고, 기본값 목록을 한 번에 넣어줄 수 있습니다.
asList() 메서드 문법
asList() 메서드의 기본 문법은 다음과 같습니다:
Arrays.asList(item1, item2, item3);
asList() 메서드는 원하는 값의 개수만큼 임의의 개수의 매개변수를 받을 수 있습니다.
그럼 실제 예제를 통해 asList() 메서드가 어떻게 작동하는지 살펴보겠습니다.
최근 8주간 매주 금별(gold star)을 가장 많이 받은 학생들의 이름을 저장하는 프로그램을 만든다고 가정해 봅시다. add() 메서드로 여덟 명의 학생을 하나씩 추가하는 대신, asList()를 사용하면 여덟 개의 값을 가진 리스트를 한 번에 초기화할 수 있습니다.
import java.util.ArrayList;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
ArrayList<String> students = new ArrayList<>(Arrays.asList("Paul", "David", "Lisa", "Alyssa", "Alex", "Ronald", "Todd", "Hope"));
System.out.println("Students: " + students);
}
}
실행 결과는 다음과 같습니다:
Students: [Paul, David, Lisa, Alyssa, Alex, Ronald, Todd, Hope]
코드를 자세히 분석해 보겠습니다. 먼저 문자열 값을 저장할 수 있는 students라는 이름의 ArrayList를 선언했습니다. 그리고 아래 코드로 이 리스트를 기본값들과 함께 초기화했습니다:
new ArrayList<>(Arrays.asList("Paul", "David", "Lisa", "Alyssa", "Alex", "Ronald", "Todd", "Hope"));
여기서는 8개의 요소를 가진 리스트를 생성한 뒤, asList() 메서드를 사용해 해당 요소들을 ArrayList로 변환했습니다.
이처럼 asList()를 활용한 초기화 방식은 add() 문을 여덟 번 반복해서 작성하는 것보다 훨씬 가독성이 좋고 코드도 간결해집니다.
마무리
Java 개발자들은 Arrays.asList() 메서드를 사용해 ArrayList를 초기화합니다. asList()를 활용하면 기본값 목록으로 배열을 한 번에 채울 수 있으며, 여러 개의 add() 호출을 반복하는 것보다 효율적이고 깔끔한 코드를 작성할 수 있습니다.
이 글에서는 예제를 통해 Java에서 ArrayList를 초기화하는 방법을 살펴보았습니다. 이제 여러분도 전문가처럼 Java에서 ArrayList를 자유롭게 초기화할 수 있을 것입니다!