한 줄 List 초기화

JavaBeginner
지금 연습하기

소개

Java 에서, 우리는 다양한 접근 방식을 사용하여 한 줄의 코드만으로 List 를 초기화할 수 있습니다. 이 Lab 에서는 Java 에서 List 를 간결하게 초기화하는 다양한 방법을 배웁니다.

Arrays.asList() 메서드 사용

asList() 메서드를 사용하여 배열을 기반으로 List 를 생성할 수 있습니다. 이 메서드는 요소를 직접 매개변수로 받아 고정 크기의 List 를 반환합니다. 요소를 추가하려고 시도하면 UnsupportedOperationException 이 발생합니다.

import java.util.Arrays;
import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Arrays.asList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

코드를 실행하려면 명령 프롬프트를 열고, 프로젝트 디렉토리로 이동하여 다음 명령을 실행합니다.

javac ListInitializationDemo.java
java ListInitializationDemo

Java 8 Streams 사용

Java Streams 는 collect() 메서드를 사용하여 스트림 요소에 대한 List 를 생성하는 데 사용할 수 있습니다.

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Stream.of("red", "blue", "green")
                                        .collect(Collectors.toList());
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

코드를 실행하려면 명령 프롬프트를 열고, 프로젝트 디렉토리로 이동하여 다음 명령을 실행합니다.

javac ListInitializationDemo.java
java ListInitializationDemo

List.of() 메서드 사용

Java 9 는 가변 (mutable) 및 불변 (immutable) List 모두에 대해 오버로드된 List.of() 메서드를 제공합니다.

import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = List.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

코드를 실행하려면 명령 프롬프트를 열고, 프로젝트 디렉토리로 이동하여 다음 명령을 실행합니다.

javac ListInitializationDemo.java
java ListInitializationDemo

Double Brace 구문 사용

Double Brace Initialization 은 익명 내부 클래스 (Anonymous Inner Class) 를 사용하여 List 를 초기화하는 데 사용할 수 있습니다.

import java.util.List;
import java.util.ArrayList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = new ArrayList<String>() {
            {
                add("red");
                add("blue");
                add("green");
            }
        };
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

코드를 실행하려면 명령 프롬프트를 열고, 프로젝트 디렉토리로 이동하여 다음 명령을 실행합니다.

javac ListInitializationDemo.java
java ListInitializationDemo

Apache Commons Collections 사용

Apache Commons Collections 는 지정된 리스트의 수정 불가능한 뷰 (unmodifiable view) 를 반환하는 unmodifiableList() 메서드를 제공합니다.

import java.util.List;
import org.apache.commons.collections4.ListUtils;
import java.util.Arrays;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ListUtils.unmodifiableList(
                Arrays.asList("red", "blue", "green")
        );
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

코드를 실행하려면 터미널을 열고, 프로젝트 디렉토리로 이동하여 다음 명령을 실행합니다.

javac -cp commons-collections4-4.4.jar ListInitializationDemo.java
java -cp commons-collections4-4.4.jar:. ListInitializationDemo

Guava 라이브러리 사용법

Guava 라이브러리는 요소로 초기화된 가변 ArrayList 를 반환하는 newArrayList() 메서드를 제공합니다.

import java.util.List;
import com.google.common.collect.Lists;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Lists.newArrayList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

코드를 실행하려면 터미널을 열고, 프로젝트 디렉토리로 이동하여 다음 명령을 실행합니다.

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

Guava 의 ImmutableList 사용 방법

Guava 는 또한 불변 (immutable) List 를 반환하는 ImmutableList 클래스를 제공합니다.

import java.util.List;
import com.google.common.collect.ImmutableList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ImmutableList.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

코드를 실행하려면 터미널을 열고, 프로젝트 디렉토리로 이동하여 다음 명령을 실행합니다.

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

요약

Java 에서는 한 줄의 코드로 List 를 초기화하는 다양한 방법이 있습니다. Java 8 Stream 을 사용하여 List 를 생성하는 방법, Arrays.asList() 메서드 사용, 그리고 Java 9 이후 버전에서 List.of() 메서드를 사용하는 방법을 살펴보았습니다. 또한 Double Brace Initialization 과 Apache Commons Collections 및 Guava 와 같은 외부 Java 라이브러리를 사용하는 예시도 확인했습니다.