logo

Java에서 목록 초기화

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

목록인터페이스자바

List는 인터페이스이며 List의 인스턴스는 다음과 같은 방법으로 생성될 수 있습니다.



 List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>

다음은 목록을 초기화하는 방법입니다.

  1. 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]>
  2. 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]>
  3. 컬렉션 클래스 메서드 사용

    Collections 클래스에는 목록을 인스턴스화하는 데 사용할 수 있는 다양한 메서드가 있습니다. 그들은:

    1. 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]>
    2. 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>
    3. 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]>
  4. 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]>
  5. 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]>