logo

Initiera en lista i Java

De Java.util.List är ett barngränssnitt av Samling . Det är en ordnad samling objekt där dubbla värden kan lagras. Eftersom List bevarar insättningsordningen tillåter den positionell åtkomst och infogning av element. List Interface implementeras av ArrayList , Länkad lista , Vektor och Stack klasser.

listinterfacejava

List är ett gränssnitt och instanserna av List kan skapas på följande sätt:



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

Nedan finns följande sätt att initiera en lista:

  1. Använder metoden List.add().

    Eftersom listan är ett gränssnitt kan man inte direkt instansiera den. Däremot kan man skapa objekt av de klasser som har implementerat detta gränssnitt och instansiera dem.

    Få klasser som har implementerat List-gränssnittet är det Stack, ArrayList, LinkedList, Vector etc.

    Syntax:

     List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>

    Exempel:




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

    >

    >

    Produktion:

     ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>

    Dubbel stag initiering kan också användas för att utföra ovanstående arbete.

    Syntax:

     List list=new ArrayList(){{ add(1); add(2); add(3); }};>

    Exempel:




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

    >

    >

    Produktion:

     ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
  2. Använda Arrays.asList()

    • Skapar oföränderlig lista

      Arrays.asList() skapar en oföränderlig lista från en array. Därför kan den användas för att instansiera en lista med en array.

      Syntax:

      List list=Arrays.asList(1, 2, 3);>

      Exempel:




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

      >

      >

      Produktion:

       List : [1, 2, 3]>
    • Skapar föränderlig lista

      Syntax:

      List list=new ArrayList(Arrays.asList(1, 2, 3));>

      Exempel:




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

      nginx

      >

      >

      Produktion:

       List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
  3. Använda samlingar klassmetoder

    Det finns olika metoder i klassen Collections som kan användas för att instansiera en lista. Dom är:

    1. Använda Collections.addAll()

      Samlingar klass har en statisk metod Lägg till alla() som kan användas för att initiera en lista. Collections.addAll() ta in valfritt antal element efter att det specificerats med den samling som elementen ska infogas i.

      Syntax:

      List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>

      Exempel:




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

      >

      >

      Produktion:

       List : [1, 2, 3, 4]>
    2. Använder Collections.unmodifiableList()

      Collections.unmodifiableList() returnerar en lista som inte kan ändras, dvs den kan varken lägga till eller ta bort ett element. Varje försök att ändra listan kommer att resultera i ett UnsupportedOperationExample.

      Syntax:

      List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>

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

      >

      >

      Produktion:

       List : [1, 2, 3]>

      Exempel 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);> >}> >}> }>

      >

      >

      Produktion:

       List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
    3. Använda Collections.singletonList()

      Collections.singletonList() returnerar en oföränderlig lista som endast består av ett element.

      Syntax:

      List list = Collections.singletonList(2);>

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

      >

      >

      Produktion:

       List : [2]>
  4. Använder Java 8 Stream

    Med introduktionen av Stream och funktionell programmering i Java 8 kan man nu konstruera vilken ström av objekt som helst och sedan samla dem som en lista.

    Syntax:

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

    Exempel:




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

    >

    >

    Produktion:

     List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
  5. Använder Java 9 List.of()

    Java 9 introducerade List.of()-metoden som tar in valfritt antal argument och konstruerar en kompakt och omodifierbar lista av dem.

    Syntax:

    List unmodifiableList = List.of(1, 2, 3);>

    Exempel:




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

    >

    >

    PRODUKTION:

     [1, 2, 3]>