java list how create
Ta vadnica seznama Java pojasnjuje, kako ustvariti, inicializirati in natisniti sezname v Javi. Vadnica pojasnjuje tudi seznam seznamov s celotnim primerom kode:
Ta vadnica vam bo predstavila 'seznam' podatkovne strukture, ki je ena od osnovnih struktur v vmesniku Java Collection.
Seznam v Javi je zaporedje elementov po vrstnem redu. List vmesnik paketa java.util je tisti, ki izvaja to zaporedje predmetov, razvrščenih na poseben način, imenovan List.
=> Tukaj preverite VSE Vadnice za Java.
Tako kot do nizov lahko tudi do elementov seznama dostopate s pomočjo indeksov s prvim indeksom, ki se začne na 0. Indeks označuje določen element v indeksu 'i', tj. Je element i oddaljen od začetka seznama.
Nekatere značilnosti seznama v Javi vključujejo:
- Seznami imajo lahko podvojene elemente.
- Seznam ima lahko tudi „nične“ elemente.
- Seznami podpirajo generična zdravila, tj. Lahko imate generične sezname.
- Na istem seznamu imate lahko tudi mešane predmete (predmete različnih razredov).
- Seznami vedno ohranijo vrstni red vstavljanja in omogočajo pozicijski dostop.
Kaj se boste naučili:
- Seznam v Javi
- Zaključek
Seznam v Javi
Vmesnik Java List je podvrsta vmesnika Java Collection. To je standardni vmesnik, ki podeduje vmesnik Collection Java.
Spodaj je diagram razredov vmesnika Java List.
Kot je prikazano v zgornjem diagramu razredov, se vmesnik seznama Java razteza od zbirnega vmesnika paketa java.util, ta pa od iterable vmesnika paketa java.util. Razred AbstractList zagotavlja skeletno izvedbo vmesnika List.
Razredi LinkedList, Stack, Vector, ArrayList in CopyOnWriteArrayList so vsi izvedbeni razredi vmesnika List, ki jih programerji pogosto uporabljajo. Tako obstajajo štiri vrste seznamov v Javi, tj. Stack, LinkedList, ArrayList in Vector.
Ko morate torej uporabiti vmesnik seznama, lahko implementirate katerega koli od zgornjih razredov seznama, odvisno od zahtev. Če želite v svoj program vključiti funkcionalnost vmesnika za seznam, boste morali uvozite paket java.util. *, ki vsebuje vmesnik seznama in druge definicije razredov, kot sledi:
import java.util.*;
Ustvari in prijavi seznam
Omenili smo že, da je List vmesnik in ga izvajajo razredi, kot so ArrayList, Stack, Vector in LinkedList. Zato lahko prijavite in ustvarite primerke seznama na enega od naslednjih načinov:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Kot je prikazano zgoraj, lahko ustvarite seznam s katerim koli od zgornjih razredov in nato te sezname inicializirate z vrednostmi. Iz zgornjih stavkov lahko razberete, da se bo vrstni red elementov spremenil glede na razred, uporabljen za ustvarjanje primerka seznama.
Na primer, za seznam z razredom skladov je vrstni red Last In, First Out (LIFO).
Inicializirajte seznam Java
Za inicializiranje predmeta seznama lahko uporabite katero koli od spodnjih metod.
# 1) Uporaba metode asList
Metoda asList () je podrobno zajeta že v temi Arrays. S pomočjo vrednosti matrike lahko ustvarite nespremenljiv seznam.
Splošna sintaksa je:
List listname = Arrays.asList(array_name);
Tu se mora vrsta_podatkov ujemati z vrsto matrike.
Zgornja izjava ustvari nespremenljiv seznam. Če želite, da je seznam spremenljiv, morate ustvariti primerek seznama z uporabo novega in mu z metodo asList dodeliti elemente polja.
To je prikazano spodaj:
List listname = new ArrayList (Arrays.asList(array_name));
Dajmo implementirati program v Javi, ki prikazuje ustvarjanje in inicializacijo seznama z uporabo metode asList .
najboljša programska oprema za video pretvornike za Windows 10
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 + ' '); } }
Izhod:
V zgornjem programu smo najprej ustvarili nespremenljiv seznam z metodo asList. Nato ustvarimo spremenljiv seznam z ustvarjanjem primerka ArrayList in nato s pomočjo metode asList inicializiramo ta ArrayList z vrednostmi iz polja.
Ker je drugi seznam spremenljiv, mu lahko dodamo tudi več vrednosti.
# 2) Uporaba List.add ()
Kot smo že omenili, je seznam le vmesnik, zato ga ni mogoče ustvariti. Lahko pa ustvarimo razrede, ki izvajajo ta vmesnik. Zato lahko za inicializiranje razredov seznamov uporabite njihove ustrezne metode dodajanja, ki je metoda vmesnika seznama, vendar jo izvaja vsak razred.
Če ti ustvarite primer razreda povezanega seznama, kot je prikazano spodaj:
List llist = new LinkedList ();
Nato za dodajanje elementa na seznam lahko uporabite metodo add na naslednji način:
llist.add(3);
Obstaja tudi tehnika, imenovana 'Double brace Initiation', pri kateri se seznam ustvari in inicializira s klicanjem metode add v istem stavku.
To se naredi, kot je prikazano spodaj:
List llist = new LinkedList (){{ add(1); add(3);}};
Zgornja izjava doda elemente 1 in 3 na seznam.
Naslednji program prikazuje inicializacije seznama z uporabo metode add . Uporablja tudi tehniko inicializiranja z dvojnimi oklepaji.
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()); } }
Izhod:
Ta program ima tri različne deklaracije seznama, tj. ArrayList, LinkedList in Stack.
Predmeti ArrayList in LinkedList se ustvarijo v instanci, nato pa se pokličejo metode add za dodajanje elementov tem objektom. Za sklad se uporablja inicializacija z dvojno oklepaj, pri kateri se metoda add prikliče med samo instantacijo.
# 3) Uporaba metod predavanja zbirk
Razred zbirk Java ima različne metode, s katerimi je mogoče inicializirati seznam.
Nekatere metode so:
- addAll
The splošna sintaksa za zbirke metoda addAll je:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Tu dodate vrednosti na prazen seznam. Metoda addAll vzame seznam kot prvi parameter, ki mu sledijo vrednosti, ki jih je treba vstaviti na seznam.
- unmodifiableList ()
Metoda ‘unmodifiableList ()’ vrne nespremenljiv seznam, ki mu elementov ni mogoče dodati niti izbrisati.
Splošna sintaksa te metode je naslednja:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Metoda kot vrednosti vzame vrednosti seznama in vrne seznam. Če sploh poskušate dodati ali izbrisati kateri koli element s tega seznama, potem prevajalnik vrže izjemo UnsupportedOperationException.
- singletonList ()
Metoda ‘singletonList’ vrne seznam z enim samim elementom. Seznam je nespremenljiv.
Splošna sintaksa te metode je:
List listname = Collections.singletonList(value);
Naslednji program Java prikazuje vse tri metode razreda Collections obravnavano zgoraj.
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()); } }
Izhod:
# 4) Uporaba Java8 Streams
Z uvedbo tokov v Javi 8 lahko tudi ustvarite tok podatkov in jih zberete na seznamu.
Naslednji program prikazuje ustvarjanje seznama z uporabo toka.
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()); } }
Izhod:
Zgornji program zbere tok niza na seznam in ga vrne. Poleg funkcije asList v funkciji zbiranja lahko uporabite tudi druge metode zbiralcev, kot so 'toCollection', 'unmodifiableList' itd.
# 5) Metoda Java 9 List.of ()
Nova metoda je predstavljena v Javi 9, List.of (), ki sprejme poljubno število elementov in oblikuje seznam. Sestavljen seznam je nespremenljiv.
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()); } }
Izhod:
Primer seznama
Spodaj je celoten primer uporabe vmesnika s seznamom in njegovih različnih metod.
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); } }
Izhod:
Zgornji izhod programa prikazuje različne operacije, izvedene na ArrayList. Najprej ustvari in inicializira seznam. Nato na ta seznam kopira vsebino drugega seznama in s seznama tudi odstrani element. Nazadnje nadomešča zadnji element na seznamu z drugo vrednostjo.
Metode seznama bomo podrobno preučili v naslednji vadnici.
Tiskanje seznama
Obstajajo različne metode, s katerimi lahko natisnete elemente seznama v Javi.
Pogovorimo se o nekaterih metodah tukaj.
# 1) Uporaba za zanko / izboljšano za zanko
Seznam je urejena zbirka, do katere je mogoče dostopati s pomočjo indeksov. Lahko uporabite zanko for, ki se uporablja za ponavljanje z uporabo indeksov za tiskanje vsakega elementa seznama.
Java ima še eno različico for zanke, ki jo poznamo kot izboljšano zanko in jo lahko uporabimo tudi za dostop do vseh elementov seznama in tiskanje.
Spodaj prikazani program Java prikazuje tiskanje vsebine seznama z uporabo zanke in izboljšano zanko.
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 Izhod:
# 2) Uporaba metode toString
Metoda ‘toString ()’ vmesnika seznama vrne nizovno predstavitev seznama.
Spodnji program prikazuje uporabo metode 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()); } }
Izhod:
Seznam pretvorjen v matriko
Seznam ima metodo toArray (), ki seznam pretvori v matriko. Ko je enkrat pretvorjen v matriko, lahko za tiskanje vsebine te matrice uporabite metode matrike, obravnavane v posamezni temi. Uporabite lahko za ali izboljšano for zanko ali celo toString metodo.
Spodnji primer za tiskanje vsebine polja uporablja metodo toString.
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())); } }
Izhod:
Uporaba Java 8 Streams
Potoki so predstavljeni v Javi 8. Potoke lahko uporabljate za zanko po seznamu. Obstajajo tudi lambde, s katerimi lahko pregledujete seznam.
Spodnji program prikazuje uporaba tokov za ponavljanje po seznamu in prikaz njegove vsebine.
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 + ' ')); } }
Izhod:
Poleg zgoraj obravnavanih metod lahko s ponovitvami seznama in prikazom njegove vsebine uporabite iteratorje seznama. V naslednjih vajah bomo imeli celoten članek o iteratorju seznama.
Seznam seznamov
Vmesnik Java list podpira 'seznam seznamov'. Pri tem so posamezni elementi seznama spet seznam. To pomeni, da imate lahko seznam znotraj drugega seznama.
Ta koncept je zelo koristen, ko morate prebrati podatke iz recimo datotek CSV. Tu boste morda morali prebrati več seznamov ali seznamov znotraj seznamov in jih nato shraniti v pomnilnik. Ponovno boste morali te podatke obdelati in zapisati nazaj v datoteko. Tako lahko v takih situacijah vodite seznam seznamov za poenostavitev obdelave podatkov.
Naslednji program Java prikazuje primer seznama Java.
V tem programu imamo seznam seznamov vrste String. Ustvarimo dva ločena seznama tipa string in tem seznamom dodelimo vrednosti. Oba seznama sta dodana na seznam s pomočjo metode add.
Za prikaz vsebine seznama seznamov uporabimo dve zanki. Zunanja zanka (foreach) pregleduje sezname seznamov, ki dostopajo do seznamov. Notranja zanka foreach dostopa do posameznih elementov niza vsakega od teh seznamov.
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 }); } }
Izhod:
Seznam seznamov Java je majhen koncept, vendar je pomemben zlasti, če morate v programu brati zapletene podatke.
Pogosto zastavljena vprašanja
V # 1) Kaj je seznam in nastavitev v Javi?
Odgovor: Seznam je urejena zbirka elementov. Na seznamu so lahko podvojeni elementi.
Komplet ni urejena zbirka. Elementi v naboru niso razporejeni v nobenem določenem vrstnem redu. Tudi elementi v kompletu morajo biti unikatni. Ne dovoljuje dvojnikov.
V # 2) Kako deluje seznam v Javi?
Odgovor: Seznam je vmesnik v Javi, ki se razteza od vmesnika Collection. Razredi ArrayList, LinkedList, Stack in Vector izvajajo vmesnik seznama. Tako lahko programer uporablja te razrede za uporabo funkcionalnosti vmesnika seznama.
V # 3) Kaj je ArrayList v Javi?
Odgovor: ArrayList je dinamično polje. Je spremenljiva zbirka elementov in izvaja vmesnik seznama. ArrayList interno uporablja matriko za shranjevanje elementov.
V # 4) Ali se v Javi seznami začnejo z 0 ali 1?
Odgovor: Seznami v Javi imajo celoštevilski indeks, ki temelji na nič. To pomeni, da je prvi element na seznamu pri indeksu 0, drugi element pri indeksu 1 itd.
V # 5) Ali je seznam razvrščen?
Odgovor: Da. Seznam je urejena zbirka elementov. Ta vrstni red se med vstavljanjem novega elementa na seznam ohrani,
Zaključek
Ta vadnica je predstavila vmesnik seznama v Javi. Razpravljali smo tudi o glavnih konceptih seznamov, kot so ustvarjanje, inicializacija seznamov, tiskanje seznamov itd.
V naših prihajajočih vadnicah bomo razpravljali o različnih metodah, ki jih ponuja vmesnik seznama. Pogovorili se bomo tudi o konstrukciji iteratorja, ki se uporablja za ponavljanje predmeta seznama. Pretvorbo predmetov seznama v druge podatkovne strukture bomo obravnavali v naši prihajajoči vadnici.
=> Obiščite tukaj, da si ogledate serijo Java Training for All.
kako primerjati dve datoteki v linuxu
Priporočeno branje
- Java Array - prijavite, ustvarite in inicializirajte polje v Javi
- Niz predmetov v Javi: Kako ustvariti, inicializirati in uporabiti
- Java Hello World - Ustvarite svoj prvi program v Javi danes
- Uvajanje Java: Ustvarjanje in izvajanje datoteke Java JAR
- Navidezni stroj Java: kako JVM pomaga pri zagonu aplikacije Java
- Dostopni modifikatorji v Javi - Vadnica s primeri
- Vadnica za odsev Java s primeri
- Uvod v programski jezik Java - Video vadnica