그만큼 Java.util.List 의 하위 인터페이스입니다. 수집 . 중복된 값을 저장할 수 있는 순서가 지정된 개체 모음입니다. List는 삽입 순서를 유지하므로 위치에 따른 액세스와 요소 삽입이 허용됩니다. 목록 인터페이스는 다음과 같이 구현됩니다. 배열목록 , 링크드리스트 , 벡터 그리고 스택 클래스.

List는 인터페이스이며 List의 인스턴스는 다음과 같은 방법으로 생성될 수 있습니다.
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
다음은 목록을 초기화하는 방법입니다.
-
List.add() 메소드 사용
리스트는 인터페이스이므로 직접 인스턴스화할 수 없습니다. 그러나 이 인터페이스를 구현한 클래스의 객체를 생성하고 인스턴스화할 수 있습니다.
List 인터페이스를 구현한 클래스는 거의 없습니다. 스택, ArrayList, LinkedList, 벡터 등.
통사론:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
예:
import>java.util.*;>import>java.util.function.Supplier;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// For ArrayList>>List list =>new>ArrayList();>>list.add(>1>);>>list.add(>3>);>>System.out.println(>'ArrayList : '>+ list.toString());>>>// For LinkedList>>List llist =>new>LinkedList();>>llist.add(>2>);>>llist.add(>4>);>>System.out.println(>'LinkedList : '>+ llist.toString());>>>// For Stack>>List stack =>new>Stack();>>stack.add(>3>);>>stack.add(>1>);>>System.out.println(>'Stack : '>+ stack.toString());>>}>}>>
>
산출:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
이중 중괄호 초기화 위의 작업을 수행하는 데에도 사용할 수 있습니다.
통사론:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>예:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// For ArrayList>>List list =>new>ArrayList() {{>>add(>1>);>>add(>3>);>>} };>>System.out.println(>'ArrayList : '>+ list.toString());>>>// For LinkedList>>List llist =>new>LinkedList() {{>>add(>2>);>>add(>4>);>>} };>>System.out.println(>'LinkedList : '>+ llist.toString());>>>// For Stack>>List stack =>new>Stack() {{>>add(>3>);>>add(>1>);>>} };>>System.out.println(>'Stack : '>+ stack.toString());>>}>}>>
>
산출:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Arrays.asList() 사용
- 불변 목록 만들기
배열.asList() 배열에서 변경할 수 없는 목록을 만듭니다. 따라서 배열을 사용하여 목록을 인스턴스화하는 데 사용할 수 있습니다.
통사론:
List list=Arrays.asList(1, 2, 3);>
예:
import>java.util.Arrays;>import>java.util.List;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Instantiating List using Arrays.asList()>>List list = Arrays.asList(>1>,>2>,>3>);>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
산출:List : [1, 2, 3]>
- 변경 가능한 목록 만들기
통사론:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
예:
import>java.util.ArrayList;>import>java.util.Arrays;>import>java.util.List;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating a mutable list using Arrays.asList()>>List list =>new>ArrayList(>>Arrays.asList(>1>,>2>,>3>));>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>>list.add(>5>);>>>// Print the list>>System.out.println(>'Modified list : '>+ list.toString());>>}>}>배열 정렬 자바
>
>
산출:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- 불변 목록 만들기
-
컬렉션 클래스 메서드 사용
Collections 클래스에는 목록을 인스턴스화하는 데 사용할 수 있는 다양한 메서드가 있습니다. 그들은:
-
Collections.addAll() 사용
컬렉션 클래스에 정적 메서드가 있습니다. 모두 추가() 목록을 초기화하는 데 사용할 수 있습니다. 컬렉션.추가모두() 요소가 삽입될 컬렉션에 지정된 후 원하는 만큼의 요소를 가져옵니다.
통사론:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
예:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Create an empty list>>List list =>new>ArrayList();>>>// Instantiating list using Collections.addAll()>>Collections.addAll(list,>1>,>2>,>3>,>4>);>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
산출:List : [1, 2, 3, 4]>
-
Collections.unmodifyingList() 사용
Collections.unmodifyingList() 변경할 수 없는 목록을 반환합니다. 즉, 요소를 추가하거나 삭제할 수 없습니다. 목록을 수정하려고 하면 UnsupportedOperationExample이 발생합니다.
통사론:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
예시 1:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating the list>>List list = Collections.unmodifiableList(>>Arrays.asList(>1>,>2>,>3>));>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
산출:List : [1, 2, 3]>
예 2:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>try>{>>// Creating the list>>List list = Collections.unmodifiableList(>>Arrays.asList(>1>,>2>,>3>));>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>>// Trying to modify the list>>System.out.println(>'Trying to modify the list'>);>>list.set(>0>, list.get(>0>));>>}>>>catch>(Exception e) {>>System.out.println(>'Exception : '>+ e);>>}>>}>}>>
>
산출:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Collections.singletonList() 사용
Collections.singletonList() 하나의 요소로만 구성된 불변 목록을 반환합니다.
통사론:
List list = Collections.singletonList(2);>
예시 1:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating the list>>List list = Collections.singletonList(>2>);>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
산출:List : [2]>
-
-
Java 8 스트림 사용
Java 8에 스트림 및 함수형 프로그래밍이 도입되면서 이제 객체 스트림을 구성한 다음 목록으로 수집할 수 있습니다.
통사론:
1. List list = Stream.of(1, 2, 3) .collect(Collectors.toList()); 2. List list = Stream.of(1, 2, 3) .collect(Collectors.toCollection(ArrayList::new)); 3. List list = Stream.of(1, 2, 3, 4) .collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList));>
예:
import>java.util.*;>import>java.util.stream.Collectors;>import>java.util.stream.Stream;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating a List using Syntax 1>>List list1 = Stream.of(>1>,>2>,>3>)>>.collect(Collectors.toList());>>>// Printing the list>>System.out.println(>'List using Syntax 1: '>>+ list1.toString());>>>// Creating a List using Syntax 2>>List list2 = Stream>>.of(>3>,>2>,>1>)>>.collect(>>Collectors>>.toCollection(ArrayList::>new>));>>>// Printing the list>>System.out.println(>'List using Syntax 2: '>>+ list2.toString());>>>// Creating a List using Syntax 3>>List list3 = Stream>>.of(>1>,>2>,>3>,>4>)>>.collect(>>Collectors>>.collectingAndThen(>>Collectors.toList(),>>Collections::unmodifiableList));>>>// Printing the list>>System.out.println(>'List using Syntax 3: '>>+ list3.toString());>>}>}>>
>
산출:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Java 9 List.of() 사용
Java 9에는 원하는 수의 인수를 가져와서 그 중에서 간결하고 수정 불가능한 목록을 구성하는 List.of() 메서드가 도입되었습니다.
통사론:
List unmodifiableList = List.of(1, 2, 3);>
예:
import>java.util.List;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating a list using List.of()>>List unmodifiableList = List.of(>1>,>2>,>3>);>>>// Printing the List>>System.out.println(>'List : '>>+ unmodifiableList.toString());>>}>}>>
>
산출:
[1, 2, 3]>