denna Java List Tutorial förklarar hur man skapar, initierar och skriver ut listor i Java. Handledningen förklarar också lista över listor med komplett kodexempel:

denna handledning kommer att introducera dig till datastrukturen ”lista” som är en av de grundläggande strukturerna i Java Collection-gränssnittet.

en lista i Java är en sekvens av element enligt en ordning. Listan gränssnittet för java.,util-paketet är det som implementerar denna sekvens av objekt som beställts på ett visst sätt som heter lista.

= > kontrollera alla Java Tutorials här.

precis som matriser kan listelementen också nås med index med det första indexet som börjar vid 0. Indexet anger ett visst element i index ” i ” dvs det är jag element bort från början av listan.

några av egenskaperna i listan i Java inkluderar:

  • listor kan ha dubbla element.
  • listan kan också ha ”null” – element.,
  • listar support generics dvs du kan ha generiska listor.
  • Du kan också ha blandade objekt (objekt av olika klasser) i samma lista.
  • listor alltid bevara infogningsordning och tillåta positionsåtkomst.

lista i Java

Java List interface är en undertyp till Java Collection interface. Detta är standardgränssnittet som ärver Samlingsgränssnittet för Java.

nedan anges ett klassdiagram för Java List-gränssnittet.,

Java List Class Diagram

som visas i ovanstående klassdiagram sträcker sig Java list-gränssnittet från Samlingsgränssnittet för java.util-paketet som i sin tur sträcker sig från Java-gränssnittet.util. Klassen AbstractList ger skelettet genomförandet av listgränssnittet.

klasserna LinkedList, Stack, Vector, ArrayList och CopyOnWriteArrayList är alla implementeringsklasser av listgränssnitt som ofta används av programmerare., Således finns det fyra typer av listor i Java dvs Stack, LinkedList, ArrayList och Vector.

därför, när du måste implementera Listgränssnitt, kan du implementera någon av ovanstående listtypsklass beroende på kraven. För att inkludera funktionaliteten i listgränssnittet i ditt program måste du importera paketet java.util.,* som innehåller listgränssnitt och andra klasser definitioner enligt följande:

import java.util.*;

skapa & förklara lista

Vi har redan sagt att listan är ett gränssnitt och genomförs av klasser som ArrayList, Stack, vektor och LinkedList. Därför kan du deklarera och skapa instanser av listan på något av följande sätt:

List linkedlist = new LinkedList(); List arrayList = new ArrayList();List vec_list = new Vector(); List stck_list = new Stack();

som visas ovan kan du skapa en lista med någon av ovanstående klasser och sedan initiera dessa listor med värden., Från ovanstående uttalanden kan du se till att ordningen på element ändras beroende på vilken klass som används för att skapa en instans av listan.

till exempel, för en lista med stack-klass, är ordern senast In, först ut (LIFO).

initiera Java-listan

Du kan använda någon av metoderna nedan för att initiera ett listobjekt.

#1) med asList-metoden

metoden asList () täcks redan i detalj i Arrays-ämnet. Du kan skapa en oföränderlig lista med hjälp av matrisvärdena.,

den allmänna syntaxen är:

List<data_type> listname = Arrays.asList(array_name);

Här ska data_typen matcha matrisens.

ovanstående uttalande skapar en oföränderlig lista. Om du vill att listan ska vara muterbar måste du skapa en instans av listan med nya och sedan tilldela matriselementen till den med asList-metoden.

det här är som visas nedan:

List<data_type> listname = new ArrayList<> (Arrays.asList(array_name));

låt oss implementera ett program i Java som visar skapandet och initieringen av listan med asList-metoden.,

Output:

i ovanstående program har vi skapat den oföränderliga listan först med asList-metoden. Sedan skapar vi en muterbar lista genom att skapa en instans av ArrayList och sedan initiera denna ArrayList med värden från matrisen med asList-metoden.

Observera att när den andra listan är muterbar kan vi också lägga till fler värden till den.

#2) Använda listan.Lägg till ()

som redan nämnts, eftersom listan bara är ett gränssnitt som det inte kan instansieras. Men vi kan instansiera klasser som implementerar detta gränssnitt., För att initiera listklasserna kan du därför använda deras respektive Lägg till metoder som är en listgränssnittsmetod men implementerad av var och en av klasserna.

om du instansierar en länkad listklass enligt nedan:

List<Integer> llist = new LinkedList<Integer> ();

för att lägga till ett element i en lista kan du använda Lägg till metoden enligt följande:

llist.add(3);

det finns också en teknik som heter ”Double brace initialization” där listan instansieras och initieras genom att anropa Lägg till metoden i samma uttalande.,

detta görs som visas nedan:

List<Integer> llist = new LinkedList<Integer> (){{ add(1); add(3);}};

ovanstående uttalande lägger till elementen 1 och 3 i listan.

följande program visar initialiseringar av listan med hjälp av Lägg till metoden. Den använder också dubbel stag initieringsteknik.

Output:

det här programmet har tre olika listdeklarationer, dvs. ArrayList, LinkedList och Stack.

ArrayList-och Linkedlistobjekt instansieras och sedan kallas Lägg till metoder för att lägga till element i dessa objekt., För stack används dubbel stag initiering där Lägg till metoden kallas under instantiation själv.

#3) Använda Collections Class Methods

Collections class of Java har olika metoder som kan användas för att initiera listan.

några av metoderna är:

  • addAll

den allmänna syntaxen för samlingar addAll-metoden är:

List<dataType> listname = Collections.EMPTY_LIST;Collections.addAll(listname = new ArrayList<datatype>(), values…);

här lägger du till värden i en tom lista. AddAll-metoden tar listan som den första parametern följt av de värden som ska infogas i listan.,

  • unmodifiableList ()

metoden ”unmodifiableList ()” returnerar en oföränderlig lista till vilken elementen inte kan läggas till eller tas bort.

den allmänna syntaxen för denna metod är följande:

List<datatype> listname = Collections.unmodifiableList(Arrays.asList(values…));

metoden tar listvärden som parametrar och returnerar en lista. Om du alls försöker lägga till eller ta bort något element från den här listan, kastar kompilatorn ett undantag som inte stöds Avoperationexception.

  • singletonList ()

metoden ”singletonList” returnerar en lista med ett enda element i den. Listan är oföränderlig.,

den allmänna syntaxen för den här metoden är:

List<datatype> listname = Collections.singletonList(value);

följande Java-program visar alla de tre metoderna i Samlingsklassen som diskuterats ovan.

utgång:

#4) Med Java8 strömmar

med införandet av strömmar i Java 8, kan du också bygga en ström av data och samla in dem i en lista.

följande program visar skapandet av en lista med ström.

Output:

ovanstående program samlar strömmen av sträng i en lista och returnerar den., Du kan också använda andra samlare metoder som ”toCollection”, ”unmodifiableList” etc. bortsett från asList i insamlingsfunktionen.

#5) Java 9 lista.of () Method

en ny metod introduceras i Java 9, List.av () som tar valfritt antal element och konstruerar en lista. Listan konstruerad är oföränderlig.

Output:

List exempel

nedan är ett komplett exempel på att använda en lista gränssnitt och dess olika metoder.

utgång:

ovanstående programutgång visar de olika operationer som utförs på en ArrayList. Först skapar och initierar den listan., Sedan kopierar det innehållet i en annan lista till den här listan och tar också bort ett element från listan. Slutligen ersätter det sista elementet i listan med ett annat värde.

Vi kommer att undersöka listmetoderna i detalj i vår nästa handledning.

Utskriftslista

det finns olika metoder som du kan skriva ut elementen i listan i Java.

låt oss diskutera några av metoderna här.

#1) Använda för Loop/Enhanced för Loop

listan är en beställd samling som kan nås med hjälp av index., Du kan använda för loop som används för att iterera med hjälp av indexen för att skriva ut varje element i listan.

Java har en annan version av for loop know as enhanced for loop som också kan användas för att komma åt och skriva ut varje element i listan.

Java-programmet som visas nedan visar utskrift av listinnehåll med hjälp av loop och enhanced for loop.

Output:

#2) med toString-metoden

metoden ”toString ()” i listgränssnittet returnerar strängrepresentationen i listan.

programmet nedan visar användningen av toString () – metoden.,

Output:

lista konverterad till en Array

listan har en metod toArray() som konverterar listan till en array. När du har konverterats till en array kan du använda matrismetoderna som diskuteras i respektive ämne för att skriva ut innehållet i den här matrisen. Du kan antingen använda för eller förbättras för loop eller till och med toString metod.

exemplet nedan använder toString-metoden för att skriva ut arrayinnehållet.

Output:

använda Java 8 strömmar

strömmar introduceras i Java 8. Du kan använda strömmar för att slinga genom listan., Det finns också lambdas som du kan iterera genom listan.

programmet nedan visar användningen av strömmar för att iterera via listan och visa dess innehåll.

Output:

bortsett från de metoder som diskuterats ovan, kan du använda list iteratorer för att iterera via listan och visa dess innehåll. Vi kommer att ha en komplett artikel på listan iterator i de efterföljande tutorials.

lista över listor

Java list interface stöder listan över listor. I detta är de enskilda elementen i listan igen en lista. Det betyder att du kan ha en lista i en annan lista.,

detta koncept är mycket användbart när du måste läsa data från säga CSV-filer. Här kan du behöva läsa flera listor eller listor i listor och sedan lagra dem i minnet. Återigen måste du bearbeta dessa data och skriva tillbaka till filen. Således i sådana situationer kan du behålla en lista med listor för att förenkla databehandlingen.

följande Java-program visar ett exempel på en Java-lista med listor.

i det här programmet har vi en lista över listor med Typsträng. Vi skapar två separata listor med typsträng och tilldelar värden till dessa listor., Båda dessa listor läggs till i listan med listor med hjälp av Lägg till metoden.

för att visa innehållet i listan över listor använder vi två slingor. Den yttre slingan (foreach) itererar genom listorna över listor som öppnar listorna. Den inre foreach-slingan kommer åt de enskilda strängelementen i var och en av dessa listor.

Output:

Java lista över listor är ett litet koncept men är viktigt särskilt när du måste läsa komplexa data i ditt program.

Vanliga frågor

Q #1) Vad är en lista och inställd i Java?

Svar: en lista är en beställd samling av element., Du kan ha dubbla element i listan.

en uppsättning är inte en beställd samling. Element i uppsättningen är inte ordnade i någon särskild ordning. Elementen i uppsättningen måste också vara unika. Det tillåter inte dubbletter.

Q #2) Hur fungerar en lista i Java?

svar: listan är ett gränssnitt i Java som sträcker sig från Samlingsgränssnittet. Klasserna ArrayList, LinkedList, Stack och vektor implementerar listgränssnittet. Således kan en programmerare använda dessa klasser för att använda funktionaliteten i listgränssnittet.

Q #3) Vad är en ArrayList i Java?,

svar: ArrayList är en dynamisk array. Det är en skalbar samling av element och implementerar listgränssnittet. ArrayList använder internt en array för att lagra elementen.

Q #4) gör listor börjar vid 0 eller 1 i Java?

svar: listor i Java har ett nollbaserat heltalsindex. Det betyder att det första elementet i listan är index 0, det andra elementet vid index 1 och så vidare.

Q #5) är listan beställd?

Svar: Ja. Listan är en beställd samling av element., Denna ordning bevaras, under införandet av ett nytt element i listan,

slutsats

denna handledning gav en introduktion till listgränssnittet i Java. Vi diskuterade också de stora begreppen listor som skapande, initiering av listor, utskrift av listor, etc.

i våra kommande handledning kommer vi att diskutera de olika metoder som tillhandahålls av listgränssnittet. Vi kommer också att diskutera iteratorkonstruktionen som används för att iterera listobjektet. Vi kommer att diskutera omvandlingen av listobjekt till andra datastrukturer i vår kommande handledning.,

= > besök här för att se Java Training Series för alla.