java list how create
Denne Java List-vejledning forklarer, hvordan du opretter, initialiserer og udskriver lister i Java. Selvstudiet forklarer også listen over lister med komplet kodeeksempel:
Denne vejledning introducerer dig til datastrukturens 'liste', som er en af de grundlæggende strukturer i Java Collection Interface.
En liste i Java er en række af elementer efter en rækkefølge. List-grænsefladen til java.util-pakken er den, der implementerer denne sekvens af objekter, der er bestilt på en bestemt måde kaldet List.
=> Tjek ALLE Java-tutorials her.
Ligesom arrays kan der også fås adgang til listeelementerne ved hjælp af indekser med det første indeks, der starter med 0. Indekset indikerer et bestemt element ved indeks 'i', dvs. det er i-elementer væk fra begyndelsen af listen.
Nogle af egenskaberne ved listen i Java inkluderer:
- Lister kan have duplikatelementer.
- Listen kan også have 'null' elementer.
- Lister understøtter generiske stoffer, dvs. du kan have generiske lister.
- Du kan også have blandede objekter (objekter af forskellige klasser) på den samme liste.
- Lister bevarer altid indsætningsrækkefølgen og tillader positionel adgang.
Hvad du lærer:
- Liste i Java
- Konklusion
Liste i Java
Grænsefladen Java List er en undertype af Java Collection-grænsefladen. Dette er standardgrænsefladen, der arver Java-samlingsgrænsefladen.
Nedenfor er et klassediagram over Java List-grænsefladen.

Som vist i ovenstående klassediagram udvides Java-listegrænsefladen fra samlingsgrænsefladen til java.util-pakken, som igen strækker sig fra den Iterable grænseflade til java.util-pakken. Klassen AbstractList giver skeletimplementering af grænsefladen List.
Klasserne LinkedList, Stack, Vector, ArrayList og CopyOnWriteArrayList er alle implementeringsklasser i List-interface, der ofte bruges af programmører. Der er således fire typer lister i Java, dvs. Stack, LinkedList, ArrayList og Vector.
Derfor, når du skal implementere listen Interface, kan du implementere en hvilken som helst af ovennævnte listetype klasse afhængigt af kravene. For at inkludere funktionaliteten i grænsefladen til listen i dit program skal du importer pakken java.util. *, der indeholder listegrænseflade og andre klassedefinitioner som følger:
import java.util.*;
Opret & erklær liste
Vi har allerede sagt, at List er en grænseflade og implementeres af klasser som ArrayList, Stack, Vector og LinkedList. Derfor kan du erklære og oprette forekomster af listen på en af følgende måder:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Som vist ovenfor kan du oprette en liste med en af ovenstående klasser og derefter initialisere disse lister med værdier. Fra ovenstående udsagn kan du se, at rækkefølgen af elementer vil ændre sig afhængigt af den klasse, der bruges til at oprette en forekomst af listen.
For eksempel, for en liste med stakklasse er ordren Last In, First Out (LIFO).
Initialiser Java-listen
Du kan benytte en af nedenstående metoder til at initialisere et listeobjekt.
# 1) Brug af asList-metoden
Metoden asList () er allerede dækket detaljeret i Arrays-emnet. Du kan oprette en uforanderlig liste ved hjælp af matrixværdierne.
Den generelle syntaks er:
List listname = Arrays.asList(array_name);
Her skal data_type matche det for arrayet.
Ovenstående erklæring opretter en uforanderlig liste. Hvis du vil have, at listen skal ændres, skal du oprette en forekomst af listen ved hjælp af ny og derefter tildele matrixelementerne til den ved hjælp af asList-metoden.
Dette er som vist nedenfor:
List listname = new ArrayList (Arrays.asList(array_name));
Lad os implementere et program i Java, der viser oprettelse og initialisering af listen ved hjælp af asList-metoden .
Jeg har ikke en standard gateway
import java.util.*; public class Main { public static void main(String() args) { //array of strings String() strArray = {'Delhi', 'Mumbai', 'Kolkata', 'Chennai'}; //initialize an immutable list from array using asList method List mylist = Arrays.asList(strArray); //print the list System.out.println('Immutable list:'); for(String val : mylist){ System.out.print(val + ' '); } System.out.println('
'); //initialize a mutable list(arraylist) from array using asList method List arrayList = new ArrayList(Arrays.asList(strArray)); System.out.println('Mutable list:'); //add one more element to list arrayList.add('Pune'); //print the arraylist for(String val : arrayList){ System.out.print(val + ' '); } }
Produktion:
I ovenstående program har vi oprettet den uforanderlige liste først ved hjælp af asList-metoden. Derefter opretter vi en ændret liste ved at oprette en forekomst af ArrayList og derefter initialisere denne ArrayList med værdier fra arrayet ved hjælp af asList-metoden.
Bemærk, at da den anden liste kan ændres, kan vi også tilføje flere værdier til den.
# 2) Brug af List.add ()
Som allerede nævnt, da listen kun er en grænseflade, kan den ikke instantieres. Men vi kan instantiere klasser, der implementerer denne grænseflade. Derfor kan du initialisere listen klasser ved at bruge deres respektive tilføjelsesmetoder, som er en listegrænseflademetode, men implementeret af hver af klasser.
hvis du Instant en linket listeklasse som nedenfor:
List llist = new LinkedList ();
For at tilføje et element til en liste kan du derefter bruge tilføjelsesmetoden som følger:
llist.add(3);
Der er også en teknik kaldet “Double brace initialization”, hvor listen instantieres og initialiseres ved at kalde add-metoden i samme udsagn.
Dette gøres som vist nedenfor:
List llist = new LinkedList (){{ add(1); add(3);}};
Ovenstående erklæring tilføjer elementerne 1 og 3 til listen.
Følgende program viser initialiseringer af listen ved hjælp af tilføjelsesmetoden . Det bruger også initialiseringsteknologien med dobbeltstivning.
import java.util.*; public class Main { public static void main(String args()) { // ArrayList.add method List str_list = new ArrayList(); str_list.add('Java'); str_list.add('C++'); System.out.println('ArrayList : ' + str_list.toString()); // LinkedList.add method List even_list = new LinkedList(); even_list.add(2); even_list.add(4); System.out.println('LinkedList : ' + even_list.toString()); // double brace initialization - use add with declaration & initialization List num_stack = new Stack(){{ add(10);add(20); }}; System.out.println('Stack : ' + num_stack.toString()); } }
Produktion:
Dette program har tre forskellige listedeklarationer, dvs. ArrayList, LinkedList og Stack.
ArrayList- og LinkedList-objekter instantieres, og derefter kaldes tilføjelsesmetoderne for at tilføje elementer til disse objekter. For stak bruges initialisering med dobbelt afstivning, hvor add-metoden kaldes under selve instantieringen.
# 3) Brug af samlinger Klassemetoder
Samlingsklassen på Java har forskellige metoder, der kan bruges til at initialisere listen.
Nogle af metoderne er:
- tilføjAlle
Det generel syntaks for samlinger addAll metode er:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Her føjer du værdier til en tom liste. Metoden addAll tager listen som den første parameter efterfulgt af de værdier, der skal indsættes i listen.
- unmodifiableList ()
Metoden 'unmodifiableList ()' returnerer en uforanderlig liste, hvortil elementerne ikke kan tilføjes eller slettes.
Den generelle syntaks for denne metode er som følger:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Metoden tager listeværdier som parametre og returnerer en liste. Hvis du overhovedet prøver at tilføje eller slette et element fra denne liste, kaster compileren en undtagelse Ikke-understøttetOperationException.
- singletonList ()
Metoden 'singletonList' returnerer en liste med et enkelt element i den. Listen er uforanderlig.
Den generelle syntaks for denne metode er:
List listname = Collections.singletonList(value);
Det følgende Java-program demonstrerer alle de tre metoder i klassen Collections beskrevet ovenfor.
import java.util.*; public class Main { public static void main(String args()) { // empty list List list = new ArrayList(); // Instantiating list using Collections.addAll() Collections.addAll(list, 10, 20, 30, 40); // Print the list System.out.println('List with addAll() : ' + list.toString()); // Create& initialize the list using unmodifiableList method List intlist = Collections.unmodifiableList( Arrays.asList(1,3,5,7)); // Print the list System.out.println('List with unmodifiableList(): ' + intlist.toString()); // Create& initialize the list using singletonList method List strlist = Collections.singletonList('Java'); // Print the list System.out.println('List with singletonList(): ' + strlist.toString()); } }
Produktion:
# 4) Brug af Java8 Streams
Med introduktionen af streams i Java 8 kan du også konstruere en datastrøm og samle dem på en liste.
Det følgende programmet viser oprettelsen af en liste ved hjælp af stream.
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String args()) { // Creating a List using toList Collectors method List list1 = Stream.of('January', 'February', 'March', 'April', 'May') .collect(Collectors.toList()); // Print the list System.out.println('List from Java 8 stream: ' + list1.toString()); } }
Produktion:
Ovenstående program samler strømmen af streng i en liste og returnerer den. Du kan også bruge de andre Collectors-metoder som 'toCollection', 'unmodifiableList' osv. Bortset fra asList i collect-funktionen.
# 5) Java 9 List.of () Metode
En ny metode introduceres i Java 9, List.of (), der tager et vilkårligt antal elementer og konstruerer en liste. Den konstruerede liste er uforanderlig.
import java.util.List; public class Main { public static void main(String args()) { // Create a list using List.of() List strList = List.of('Delhi', 'Mumbai', 'Kolkata'); // Print the List System.out.println('List using Java 9 List.of() : ' + strList.toString()); } }
Produktion:
Listeeksempel
Nedenfor er et komplet eksempel på brug af en listegrænseflade og dens forskellige metoder.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List intList = new ArrayList(); //add two values to the list intList.add(0, 10); intList.add(1, 20); System.out.println('The initial List:
' + intList); // Creating another list List cp_list = new ArrayList(); cp_list.add(30); cp_list.add(40); cp_list.add(50); // add list cp_list to intList from index 2 intList.addAll(2, cp_list); System.out.println('List after adding another list at index 2:
'+ intList); // Removes element from index 0 intList.remove(0); System.out.println('List after removing element at index 0:
' + intList); // Replace value of last element intList.set(3, 60); System.out.println('List after replacing the value of last element:
' + intList); } }
Produktion:
Ovenstående programoutput viser de forskellige operationer, der udføres på en ArrayList. For det første opretter og initialiserer den listen. Derefter kopieres indholdet af en anden liste til denne liste og fjerner også et element fra listen. Endelig erstatter det det sidste element på listen med en anden værdi.
Vi vil udforske listemetoderne detaljeret i vores næste vejledning.
Udskrivningsliste
Der er forskellige metoder, hvor du kan udskrive elementerne på listen i Java.
Lad os diskutere nogle af metoderne her.
# 1) Brug af For Loop / Enhanced For Loop
Listen er en ordnet samling, der kan tilgås ved hjælp af indekser. Du kan bruge til loop, der bruges til at gentage ved hjælp af indekserne til at udskrive hvert element på listen.
Java har en anden version af for loop kendt som forbedret til loop, der også kan bruges til at få adgang til og udskrive hvert element på listen.
Java-programmet vist nedenfor demonstrerer udskrivning af listeindhold ved hjælp af for loop og forbedret for loop.
import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Main{ public static void main (String() args) { //string list List list = Arrays.asList('Java', 'Python', 'C++', 'C', 'Ruby'); //print list using for loop System.out.println('List contents using for loop:'); for (int i = 0; i Produktion:

# 2) Brug af toString-metoden
Metoden 'toString ()' i listegrænsefladen returnerer strengrepræsentationen af listen.
Programmet nedenfor viser brugen af metoden toString ().
import java.util.List; import java.util.ArrayList; class Main{ public static void main (String() args){ //initialize a string list List list = new ArrayList(){{add('Python');add('C++');add('Java');}}; // string representation of list using toString method System.out.println('List contents using toString() method:' + list.toString()); } }
Produktion:

Liste konverteret til en matrix
Listen har en metode toArray (), der konverterer listen til en matrix. Når du er konverteret til et array, kan du bruge de array-metoder, der er diskuteret i det respektive emne, til at udskrive indholdet af denne array. Du kan enten bruge til eller forbedret til loop eller endda toString-metode.
Eksemplet nedenfor bruger toString-metoden til at udskrive arrayindholdet.
import java.util.*; class Main { public static void main (String() args) { //list of odd numbers List oddlist = Arrays.asList(1,3,5,7,9,11); // using List.toArray() method System.out.println('Contents of list converted to Array:'); System.out.println(Arrays.toString(oddlist.toArray())); } }
Produktion:

Brug af Java 8 Streams
Streams introduceres i Java 8. Du kan bruge streams til at løbe gennem listen. Der er også lambdas, som du kan gentage gennem listen.
Programmet nedenfor viser brugen af streams til at gentage listen og vise dens indhold.
import java.util.*; class Main{ public static void main (String() args){ //list of even numbers List evenlist = Arrays.asList(2,4,6,8,10,12,14); // print list using streams System.out.println('Contents of evenlist using streams:'); evenlist.stream().forEach(S ->System.out.print(S + ' ')); } }
Produktion:

Bortset fra de metoder, der er diskuteret ovenfor, kan du bruge liste-iteratorer til at gentage listen og vise dens indhold. Vi vil have en komplet artikel om listen iterator i de efterfølgende tutorials.
Liste over lister
Interface til Java-listen understøtter 'listen over lister'. I dette er de enkelte elementer på listen igen en liste. Dette betyder, at du kan have en liste på en anden liste.
Dette koncept er meget nyttigt, når du skal læse data fra f.eks. CSV-filer. Her skal du muligvis læse flere lister eller lister inde i listerne og derefter gemme dem i hukommelsen. Igen bliver du nødt til at behandle disse data og skrive tilbage til filen. I sådanne situationer kan du således opretholde en liste over lister for at forenkle databehandlingen.
Følgende Java-program viser et eksempel på en Java-liste over lister.
I dette program har vi en liste over lister af typen String. Vi opretter to separate lister med typestreng og tildeler værdier til disse lister. Begge disse lister føjes til listen over lister ved hjælp af tilføjelsesmetoden.
For at vise indholdet på listen over lister bruger vi to sløjfer. Den ydre sløjfe (forgrund) gentager sig gennem listerne over lister, der har adgang til listerne. Den indre foreach-løkke har adgang til de enkelte strengelementer på hver af disse lister.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //create list of lists List java_listOfLists = new ArrayList (); //create a language list and add elements to it ArrayList lang_list = new ArrayList(); lang_list.add('Java'); lang_list.add('C++'); //add language list to java list of list java_listOfLists.add(lang_list); //create a city list and add elements to it ArrayList city_list = new ArrayList(); city_list.add('Pune'); city_list.add('Mumbai'); //add the city list to java list of lists java_listOfLists.add(city_list); //display the contents of list of lists System.out.println('Java list of lists contents:'); java_listOfLists.forEach((list) -> //access each list { list.forEach((city)->System.out.print(city + ' ')); //each element of inner list }); } }
Produktion:

Java-liste over lister er et lille koncept, men det er vigtigt, især når du skal læse komplekse data i dit program.
Ofte stillede spørgsmål
Q # 1) Hvad er en liste og indstillet i Java?
standard gateway er ikke tilgængelig fix windows 10
Svar: En liste er en ordnet samling af elementer. Du kan have duplikatelementer på listen.
Et sæt er ikke en bestilt samling. Elementer i sættet er ikke arrangeret i nogen bestemt rækkefølge. Elementerne i sættet skal også være unikke. Det tillader ikke duplikater.
Q # 2) Hvordan fungerer en liste i Java?
Svar: Listen er en grænseflade i Java, der strækker sig fra samlinggrænsefladen. Klasserne ArrayList, LinkedList, Stack og Vector implementerer listegrænsefladen. Således kan en programmør bruge disse klasser til at bruge funktionaliteten i listegrænsefladen.
Q # 3) Hvad er en ArrayList i Java?
Svar: ArrayList er et dynamisk array. Det er en størrelse, der kan ændres i størrelsen, og implementerer listen interface. ArrayList bruger internt et array til at gemme elementerne.
Spørgsmål nr. 4) Starter lister ved 0 eller 1 i Java?
Svar: Lister i Java har et nulbaseret heltal indeks. Dette betyder, at det første element på listen er ved indeks 0, det andet element ved indeks 1 og så videre.
Spørgsmål nr. 5) Er listen bestilt?
Svar: Ja. Listen er en ordnet samling af elementer. Denne rækkefølge bevares under indsættelsen af et nyt element på listen,
Konklusion
Denne vejledning gav en introduktion til listegrænsefladen i Java. Vi diskuterede også de vigtigste begreber ved lister som oprettelse, initialisering af lister, udskrivning af lister osv.
I vores kommende tutorials vil vi diskutere de forskellige metoder, der leveres af listegrænsefladen. Vi vil også diskutere iteratorkonstruktionen, der bruges til at gentage listeobjektet. Vi vil diskutere konvertering af listeobjekter til andre datastrukturer i vores kommende tutorial.
=> Besøg her for at se Java Training Series for alle.
Anbefalet læsning
- Java Array - Erklære, oprette og initialisere en matrix i Java
- Objektarray i Java: Sådan oprettes, initialiseres og bruges
- Java Hello World - Opret dit første program i Java i dag
- Java-implementering: Oprettelse og udførelse af Java JAR-fil
- Java Virtual Machine: Hvordan JVM hjælper med at køre Java-applikationer
- Adgang modifikatorer i Java - vejledning med eksempler
- Java Reflection Tutorial med eksempler
- Introduktion til Java-programmeringssprog - Videovejledning