728x90
반응형
질문 : 목록 초기화 방법 Java의 개체?
다음 코드와 같이 목록을 초기화 할 수 없습니다.
List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));
다음과 같은 오류가 발생합니다.
List<String>
유형을 인스턴스화 할 수 없습니다.
List<String>
어떻게 인스턴스화 할 수 있습니까?
답변
List
용 API 를 확인하면 다음과 같이 표시됩니다.
Interface List<E>
interface
라는 것은 인스턴스화 할 수 없음을 의미합니다 ( new List()
는 가능하지 않음).
해당 링크를 확인하면 List
를 구현하는 class
찾을 수 있습니다.
AbstractList
, AbstractSequentialList
, ArrayList
, AttributeList
, CopyOnWriteArrayList
, LinkedList
, RoleList
, RoleUnresolvedList
, Stack
, Vector
그것들은 인스턴스화 될 수 있습니다. 그들의 링크를 사용하여 그들에 대해 더 많이 알 수 있습니다. IE : 어떤 것이 당신의 필요에 더 잘 맞는지 알 수 있습니다.
가장 일반적으로 사용되는 3 가지 방법은 다음과 같습니다.
List<String> supplierNames1 = new ArrayList<String>();
List<String> supplierNames2 = new LinkedList<String>();
List<String> supplierNames3 = new Vector<String>();
보너스:
다음과 같이 Arrays
class
사용하여보다 쉬운 방법으로 값으로 인스턴스화 할 수도 있습니다.
List<String> supplierNames = Arrays.asList("sup1", "sup2", "sup3");
System.out.println(supplierNames.get(1));
fixed-size
이므로 해당 목록에 더 많은 요소를 추가 할 수 없습니다.
출처 : https://stackoverflow.com/questions/13395114/how-to-initialize-liststring-object-in-java
728x90
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
Java Map의 각 항목을 효율적으로 반복하는 방법 (0) | 2021.06.24 |
---|---|
Java에서 배열을 선언하고 초기화하는 방법 (0) | 2021.06.22 |
현재 실행중인 메서드의 이름 가져 오기 (0) | 2021.06.18 |
Java에서 사용할 수있는 Gradle의 변수를 선언 (0) | 2021.06.16 |
Java에서 getPath (), getAbsolutePath () 및 getCanonicalPath ()의 차이점 (0) | 2021.06.15 |