프로그래밍 언어/JAVA

한 줄로 ArrayList 초기화

Rateye 2021. 6. 2. 10:58
728x90
반응형
질문 : 한 줄로 ArrayList 초기화

테스트 목적으로 옵션 목록을 만들고 싶었습니다. 처음에는 이렇게했습니다.

ArrayList<String> places = new ArrayList<String>();
places.add("Buenos Aires");
places.add("Córdoba");
places.add("La Plata");

그런 다음 코드를 다음과 같이 리팩토링했습니다.

ArrayList<String> places = new ArrayList<String>(
    Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));

이 작업을 수행하는 더 좋은 방법이 있습니까?

반응형
답변

ArrayList 를 초기화하는 "가장 좋은"방법은 어떤 식 으로든 List 를 만들 필요가 없기 때문에 작성한 메서드 일 것입니다.

ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");

list 인스턴스를 참조하는 데 상당한 타이핑이 필요하다는 것입니다.

인스턴스 이니셜 라이저 ( "이중 중괄호 초기화"라고도 함)를 사용하여 익명 내부 클래스를 만드는 것과 같은 대안이 있습니다.

ArrayList<String> list = new ArrayList<String>() {{
    add("A");
    add("B");
    add("C");
}};

ArrayList 의 하위 클래스이고 해당 클래스는 하나의 개체를 만들기 위해 만들어지기 때문에 그 방법을 너무 좋아하지 않습니다. .

Project Coin 에 대한 Collection Literals 제안 이 받아 들여 졌다면 좋았을 것입니다 (Java 7에 도입 될 예정이지만 Java 8에도 포함되지 않을 것 같습니다).

List<String> list = ["A", "B", "C"];

ArrayList 대신 List 를 초기화하므로 여기서는 도움이되지 않으며 더 나아가 아직 사용할 수없는 경우 사용할 수 없습니다.

출처 : https://stackoverflow.com/questions/1005073/initialization-of-an-arraylist-in-one-line
728x90
반응형