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
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
검색 메서드 'null'을 return VS return값을 생성 할 수 없을 때 예외를 throw (0) | 2021.06.05 |
---|---|
JUnit 4 테스트에서 특정 예외가 발생할 때 (0) | 2021.06.02 |
[JAVA] 자바의 제네릭 Generic (0) | 2021.01.19 |
[JAVA] 자바의 스택 & 큐 (Stack & Queue) (0) | 2021.01.19 |
[JAVA] 자바 컬렉션 프레임워크 - Map 편 (0) | 2021.01.19 |