logo

Ініціалізація списку в Java

The Java.util.List є дочірнім інтерфейсом Колекція . Це впорядкована колекція об’єктів, у якій можуть зберігатися повторювані значення. Оскільки List зберігає порядок вставки, він дозволяє позиційний доступ і вставку елементів. Інтерфейс списку реалізований ArrayList , LinkedList , Вектор і Стек класи.

listinterfacejava



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()

    • Створення незмінного списку

      Arrays.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());> >}> }>

      конструктор python

      >

      >

      Вихід:

       List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
  3. Використання методів класу Collections

    У класі Collections є різні методи, які можна використовувати для створення екземпляра списку. Вони є:

    1. Використання Collections.addAll()

      Колекції клас має статичний метод addAll() який можна використовувати для ініціалізації списку. 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.unmodifiableList()

      Collections.unmodifiableList() повертає список, який не можна змінити, тобто він не може ні додати, ні видалити елемент. Будь-яка спроба змінити список призведе до 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 Stream

    З появою Stream і функціонального програмування в 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]>