이 글에서는 Java에서 ArrayList를 함수의 인수(argument)로 전달하는 방법을 단계별로 알아봅니다.
ArrayList 클래스는 크기가 자동으로 늘어나고 줄어드는 동적 배열(resizable array)로, java.util 패키지에 포함되어 있습니다. 일반 배열과 ArrayList의 가장 큰 차이점은 다음과 같습니다.
- 일반 배열: 선언 시 크기가 고정되며 이후 변경할 수 없습니다.
- ArrayList: 요소를 추가하거나 삭제할 때마다 크기가 유동적으로 변합니다.
함수에 ArrayList를 인수로 넘기면 하나의 데이터를 여러 메서드에서 재사용할 수 있어 코드 중복을 줄이고 프로그램 구조를 훨씬 깔끔하게 유지할 수 있습니다.
실행 결과 미리 보기
프로그램을 실행하면 다음과 같은 출력을 얻습니다.
The list is defined as: Java Python Scala Mysql Redshift
알고리즘
Step 1 - START Step 2 - java.util.ArrayList 패키지를 임포트한다. Step 3 - ArrayList 객체를 생성하고 'add' 메서드로 요소를 추가한다. Step 4 - ArrayList를 매개변수로 받는 사용자 정의 메서드를 작성한다. Step 5 - main 메서드에서 해당 메서드를 호출하면서 ArrayList를 인수로 전달한다. Step 6 - for-each 루프로 리스트를 순회하며 콘솔에 출력한다. Step 7 - STOP
예제 1: 문자열(String) ArrayList 순회
다음 예제에서는 문자열 타입의 ArrayList를 함수에 전달하고, for-each 루프로 요소를 하나씩 순회하며 출력합니다.
import java.util.ArrayList;
public class Demo {
public static void print(ArrayList<String> input_list) {
System.out.print("\nThe list is defined as:\n ");
for(String language : input_list) {
System.out.print(language + " ");
}
}
public static void main(String[] args) {
System.out.println("The required packages have been imported");
ArrayList<String> input_list = new ArrayList<>();
input_list.add("Java");
input_list.add("Python");
input_list.add("Scala");
input_list.add("Mysql");
input_list.add("Redshift");
print(input_list);
}
}
출력 결과
The required packages have been imported The list is defined as: Java Python Scala Mysql Redshift
예제 2: 정수(Integer) ArrayList 순회
이번에는 정수 타입의 ArrayList를 함수에 전달하는 예제입니다. 제네릭 타입만 바꾸면 어떤 타입의 리스트든 동일한 패턴으로 처리할 수 있다는 점이 핵심입니다.
import java.util.ArrayList;
public class Demo {
public static void print(ArrayList<Integer> input_list) {
System.out.print("\nThe list is defined as:\n ");
for(Integer element : input_list) {
System.out.print(element + " ");
}
}
public static void main(String[] args) {
System.out.println("The required packages have been imported");
ArrayList<Integer> input_list = new ArrayList<>();
input_list.add(10);
input_list.add(20);
input_list.add(30);
input_list.add(40);
input_list.add(50);
print(input_list);
}
}
출력 결과
The required packages have been imported The list is defined as: 10 20 30 40 50
핵심 정리
- ArrayList는
java.util패키지의 동적 배열 클래스로, 일반 배열과 달리 크기 변경이 가능합니다. - 함수에 전달할 때는 매개변수 타입을
ArrayList<타입>형태로 선언하면 됩니다. - for-each 루프를 활용하면 리스트의 모든 요소를 간결하게 순회할 수 있습니다.
- 제네릭 타입만 교체하면 String, Integer 등 어떤 타입의 리스트도 같은 방식으로 처리할 수 있습니다.