logo

Seznam vmesnikov v Javi s primeri

Vmesnik List v Javi ponuja način za shranjevanje urejene zbirke. Je podrejeni vmesnik za Zbirka . Je urejena zbirka objektov, v kateri so lahko shranjene podvojene vrednosti. Ker seznam ohranja vrstni red vstavljanja, omogoča položajni dostop in vstavljanje elementov.

Kazalo



Seznam vmesnika v Javi

Vmesnik List je v paketu java.util in podeduje vmesnik Collection. Je tovarna vmesnika ListIterator. Preko ListIteratorja lahko ponavljamo seznam v smeri naprej in nazaj. Izvedbeni razredi vmesnika List so ArrayList, LinkedList, Stack in Vector. ArrayList in LinkedList se pogosto uporabljata v programiranju Java. Razred Vector je od Jave 5 zastarel.

List in ArrayList v Java Collection Framework

Deklaracija vmesnika seznama Java

public interface List extends Collection ;>

Oglejmo si podrobneje ustvarjanje objektov ali primerkov v razredu List. Od Seznam je vmesnik , predmetov ni mogoče ustvariti vrste list. Vedno potrebujemo razred, ki to izvaja Seznam da ustvarite predmet. In tudi po uvedbi Generiki v Javi 1.5 je mogoče omejiti vrsto predmeta, ki se lahko shrani na seznam. Tako kot več drugih uporabniško definiranih 'vmesnikov', ki jih izvajajo uporabniško definirani 'razredi', Seznam je 'vmesnik', ki ga izvaja ArrayList razred, vnaprej določen v java.util paket.



Sintaksa seznama Java

To vrsto varnega seznama je mogoče opredeliti kot:

List list = new ArrayList ();>

Opomba: Obj je vrsta predmeta, ki bo shranjen na seznamu

Primer seznama Java

Java






// Java program to Demonstrate List Interface> > // Importing all utility classes> import> java.util.*;> > // Main class> // ListDemo class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> > >// Creating an object of List interface> >// implemented by the ArrayList class> >List l1 =>new> ArrayList();> > >// Adding elements to object of List interface> >// Custom inputs> > >l1.add(>0>,>1>);> >l1.add(>1>,>2>);> > >// Print the elements inside the object> >System.out.println(l1);> > >// Now creating another object of the List> >// interface implemented ArrayList class> >// Declaring object of integer type> >List l2 =>new> ArrayList();> > >// Again adding elements to object of List interface> >// Custom inputs> >l2.add(>1>);> >l2.add(>2>);> >l2.add(>3>);> > >// Will add list l2 from 1 index> >l1.addAll(>1>, l2);> > >System.out.println(l1);> > >// Removes element from index 1> >l1.remove(>1>);> > >// Printing the updated List 1> >System.out.println(l1);> > >// Prints element at index 3 in list 1> >// using get() method> >System.out.println(l1.get(>3>));> > >// Replace 0th element with 5> >// in List 1> >l1.set(>0>,>5>);> > >// Again printing the updated List 1> >System.out.println(l1);> >}> }>

>

>

Izhod

[1, 2] [1, 1, 2, 3, 2] [1, 2, 3, 2] 2 [5, 2, 3, 2]>

Zdaj pa izvedimo različne operacije z vmesnikom seznama, da bomo bolje razumeli isto. Razpravljali bomo o naslednjih spodaj navedenih operacijah in kasneje o njihovi implementaciji s čistimi kodami Java.

Operacije v vmesniku seznama Java

Ker je List vmesnik, ga je mogoče uporabiti samo z razredom, ki implementira ta vmesnik. Zdaj pa poglejmo, kako izvesti nekaj pogosto uporabljenih operacij na seznamu.

  • Operacija 1: Dodajanje elementov v razred List z metodo add().
  • Operacija 2: Posodabljanje elementov v razredu List z metodo set().
  • Operacija 3: Iskanje elementov z uporabo metod indexOf(), lastIndexOf
  • Operacija 4: Odstranjevanje elementov z metodo remove().
  • Operacija 5: Dostopanje do elementov v razredu List z metodo get().
  • Operacija 6: Preverjanje, ali je element prisoten v razredu List z uporabo metode contains().

Zdaj pa se pogovorimo o posameznih operacijah in jih implementiramo v kodo, da jo bolje razumemo.

1. Dodajanje elementov v razred List z uporabo metoda add().

Da bi dodali element na seznam, lahko uporabimo dodaj() metoda. Ta metoda je preobremenjena za izvajanje več operacij na podlagi različnih parametrov.

Parametri: Zahteva 2 parametra, in sicer:

  • dodaj (predmet): Ta metoda se uporablja za dodajanje elementa na konec seznama.
  • add(int indeks, predmet): Ta metoda se uporablja za dodajanje elementa na določen indeks na seznamu

primer:

Java

odstranite predpomnilnik npm




// Java Program to Add Elements to a List> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an object of List interface,> >// implemented by ArrayList class> >List al =>new> ArrayList();> > >// Adding elements to object of List interface> >// Custom elements> >al.add(>'Geeks'>);> >al.add(>'Geeks'>);> >al.add(>1>,>'For'>);> > >// Print all the elements inside the> >// List interface object> >System.out.println(al);> >}> }>

>

>

Izhod

[Geeks, For, Geeks]>

2. Posodabljanje elementov

Po dodajanju elementov, če želimo element spremeniti, lahko to storimo z uporabo set() metoda. Ker je seznam indeksiran, se na element, ki ga želimo spremeniti, sklicuje indeks elementa. Zato ta metoda vzame indeks in posodobljen element, ki ga je treba vstaviti v ta indeks.

primer:

Java




// Java Program to Update Elements in a List> > // Importing utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an object of List interface> >List al =>new> ArrayList();> > >// Adding elements to object of List class> >al.add(>'Geeks'>);> >al.add(>'Geeks'>);> >al.add(>1>,>'Geeks'>);> > >// Display theinitial elements in List> >System.out.println(>'Initial ArrayList '> + al);> > >// Setting (updating) element at 1st index> >// using set() method> >al.set(>1>,>'For'>);> > >// Print and display the updated List> >System.out.println(>'Updated ArrayList '> + al);> >}> }>

>

>

Izhod

Initial ArrayList [Geeks, Geeks, Geeks] Updated ArrayList [Geeks, For, Geeks]>

3. Iskanje elementov

Iskanje elementov v vmesniku List je običajna operacija v programiranju Java. Vmesnik seznama ponuja več metod za iskanje elementov, kot je indeks() , lastIndexOf() metode.

Metoda indexOf() vrne indeks prve pojavitve podanega elementa na seznamu, medtem ko metoda lastIndexOf() vrne indeks zadnje pojavitve podanega elementa.

Parametri:

  • indexOf(element): Vrne indeks prve pojavitve podanega elementa na seznamu ali -1, če element ni najden
  • lastIndexOf(element): Vrne indeks zadnje pojavitve podanega elementa na seznamu ali -1, če elementa ni mogoče najti

primer:

Java




import> java.util.ArrayList;> import> java.util.List;> > public> class> ListExample {> >public> static> void> main(String[] args)> >{> >// create a list of integers> >List numbers =>new> ArrayList();> > >// add some integers to the list> >numbers.add(>1>);> >numbers.add(>2>);> >numbers.add(>3>);> >numbers.add(>2>);> > >// use indexOf() to find the first occurrence of an> >// element in the list> >int> index = numbers.indexOf(>2>);> >System.out.println(> >'The first occurrence of 2 is at index '> >+ index);> > >// use lastIndexOf() to find the last occurrence of> >// an element in the list> >int> lastIndex = numbers.lastIndexOf(>2>);> >System.out.println(> >'The last occurrence of 2 is at index '> >+ lastIndex);> >}> }>

>

>

Izhod

The first occurrence of 2 is at index 1 The last occurrence of 2 is at index 3>

4. Odstranjevanje elementov

Če želite odstraniti element s seznama, lahko uporabimo Odstrani() metoda. Ta metoda je preobremenjena za izvajanje več operacij na podlagi različnih parametrov. To so:

Parametri:

  • odstrani (predmet): Ta metoda se uporablja za preprosto odstranitev predmeta s seznama. Če je takšnih objektov več, se prvi pojavitev predmeta odstrani.
  • odstrani (indeks): Ker je seznam indeksiran, ta metoda sprejme celoštevilsko vrednost, ki preprosto odstrani element, ki je prisoten na tem specifičnem indeksu na seznamu. Po odstranitvi elementa se vsi elementi premaknejo v levo, da zapolnijo prostor, indeksi objektov pa se posodobijo.

primer:

Java

vrste računalnika




// Java Program to Remove Elements from a List> > // Importing List and ArrayList classes> // from java.util package> import> java.util.ArrayList;> import> java.util.List;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String args[])> >{> > >// Creating List class object> >List al =>new> ArrayList();> > >// Adding elements to the object> >// Custom inputs> >al.add(>'Geeks'>);> >al.add(>'Geeks'>);> > >// Adding For at 1st indexes> >al.add(>1>,>'For'>);> > >// Print the initialArrayList> >System.out.println(>'Initial ArrayList '> + al);> > >// Now remove element from the above list> >// present at 1st index> >al.remove(>1>);> > >// Print the List after removal of element> >System.out.println(>'After the Index Removal '> + al);> > >// Now remove the current object from the updated> >// List> >al.remove(>'Geeks'>);> > >// Finally print the updated List now> >System.out.println(>'After the Object Removal '> >+ al);> >}> }>

>

>

Izhod

Initial ArrayList [Geeks, For, Geeks] After the Index Removal [Geeks, Geeks] After the Object Removal [Geeks]>

5. Dostop do elementov

Za dostop do elementa na seznamu lahko uporabimo dobiti () metoda, ki vrne element pri podanem indeksu

Parametri:

get(int index): Ta metoda vrne element na podanem indeksu na seznamu.

primer:

Java




// Java Program to Access Elements of a List> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an object of List interface,> >// implemented by ArrayList class> >List al =>new> ArrayList();> > >// Adding elements to object of List interface> >al.add(>'Geeks'>);> >al.add(>'For'>);> >al.add(>'Geeks'>);> > >// Accessing elements using get() method> >String first = al.get(>0>);> >String second = al.get(>1>);> >String third = al.get(>2>);> > >// Printing all the elements inside the> >// List interface object> >System.out.println(first);> >System.out.println(second);> >System.out.println(third);> >System.out.println(al);> >}> }>

>

>

Izhod

programiranje struct array c
Geeks For Geeks [Geeks, For, Geeks]>

6. Preverjanje, ali je element prisoten na seznamu

Če želite preveriti, ali je element prisoten na seznamu, lahko uporabimo vsebuje() metoda. Ta metoda vrne true, če je navedeni element prisoten na seznamu, sicer vrne false.

Parametri:

vsebuje (predmet): ta metoda sprejme en sam parameter, predmet, ki ga je treba preveriti, ali je prisoten na seznamu.

primer:

Java




// Java Program to Check if an Element is Present in a List> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an object of List interface,> >// implemented by ArrayList class> >List al =>new> ArrayList();> > >// Adding elements to object of List interface> >al.add(>'Geeks'>);> >al.add(>'For'>);> >al.add(>'Geeks'>);> > >// Checking if element is present using contains()> >// method> >boolean> isPresent = al.contains(>'Geeks'>);> > >// Printing the result> >System.out.println(>'Is Geeks present in the list? '> >+ isPresent);> >}> }>

>

>

Izhod

Is Geeks present in the list? true>

Kompleksnost seznamskega vmesnika v Javi

Delovanje

Časovna zapletenost

Kompleksnost prostora

Dodajanje elementa v vmesnik seznama

O(1)

O(1)

Odstrani element iz vmesnika seznama

O(N)

O(N)

Zamenjaj element v vmesniku seznama

O(N)

O(N)

Vmesnik seznama prečkanja

O(N)

O(N)

Ponavljanje prek seznamskega vmesnika v Javi

Do zdaj imamo zelo majhno velikost vnosa in izvajamo operacije ročno za vsako entiteto. Zdaj pa se pogovorimo o različnih načinih, s katerimi lahko ponovimo seznam, da jih pripravimo do dela za večji vzorčni niz.

Metode: Obstaja več načinov za ponavljanje po seznamu. Najbolj znani načini so z uporabo osnovnega za zanko v kombinaciji z a metoda get(). da dobite element pri določenem indeksu in napredno za zanko .

primer:

Java




// Java program to Iterate the Elements> // in an ArrayList> > // Importing java utility classes> import> java.util.*;> > // Main class> public> class> GFG {> > >// main driver method> >public> static> void> main(String args[])> >{> >// Creating an empty Arraylist of string type> >List al =>new> ArrayList();> > >// Adding elements to above object of ArrayList> >al.add(>'Geeks'>);> >al.add(>'Geeks'>);> > >// Adding element at specified position> >// inside list object> >al.add(>1>,>'For'>);> > >// Using for loop for iteration> >for> (>int> i =>0>; i // Using get() method to // access particular element System.out.print(al.get(i) + ' '); } // New line for better readability System.out.println(); // Using for-each loop for iteration for (String str : al) // Printing all the elements // which was inside object System.out.print(str + ' '); } }>

>

>

Izhod

Geeks For Geeks Geeks For Geeks>

Metode vmesnika seznama

Ker je glavni koncept različnih vrst seznamov enak, vmesnik seznama vsebuje naslednje metode:

Metoda

Opis

dodaj (int indeks, element) Ta metoda se uporablja z Java List Interface za dodajanje elementa na določen indeks na seznamu. Ko je posredovan en sam parameter, preprosto doda element na koncu seznama.
addAll(indeks, zbirka zbirke) Ta metoda se uporablja z vmesnikom seznama v Javi za dodajanje vseh elementov v dani zbirki na seznam. Ko je posredovan en sam parameter, doda vse elemente dane zbirke na konec seznama.
velikost () Ta metoda se uporablja z Java List Interface za vrnitev velikosti seznama.
počisti() Ta metoda se uporablja za odstranitev vseh elementov na seznamu. Vendar je sklic ustvarjenega seznama še vedno shranjen.
odstrani (indeks) Ta metoda odstrani element iz podanega indeksa. Naslednje elemente (če obstajajo) premakne v levo in zmanjša njihove indekse za 1.
odstrani (element) Ta metoda se uporablja z Java List Interface za odstranitev prve pojavitve danega elementa na seznamu.
get(indeks) Ta metoda vrne elemente z navedenim indeksom.
set(int indeks, element) Ta metoda zamenja elemente z danim indeksom z novim elementom. Ta funkcija vrne element, ki je bil pravkar nadomeščen z novim elementom.
indexOf(element) Ta metoda vrne prvo pojavitev danega elementa oz -1 če elementa ni na seznamu.
lastIndexOf(element) Ta metoda vrne zadnjo pojavitev danega elementa oz -1 če elementa ni na seznamu.
enako (element) Ta metoda se uporablja z Java List Interface za primerjavo enakosti danega elementa z elementi seznama.
hashCode() Ta metoda se uporablja z vmesnikom seznama v Javi za vrnitev vrednosti hashcode danega seznama.
je prazno() Ta metoda se uporablja z Java List Interface za preverjanje, ali je seznam prazen ali ne. Če je seznam prazen, vrne true, drugače pa false.
vsebuje (element) Ta metoda se uporablja z vmesnikom seznama v Javi za preverjanje, ali seznam vsebuje dani element ali ne. Vrne true, če seznam vsebuje element.
vsebujeVse (zbirka zbirke) Ta metoda se uporablja z vmesnikom seznama Java za preverjanje, ali seznam vsebuje vso zbirko elementov.
razvrsti (komparator komp.) Ta metoda se uporablja z vmesnikom seznama v Javi za razvrščanje elementov seznama na podlagi danega primerjalnik .

Java List proti Setu

Tako vmesnik List kot vmesnik Set podedujeta vmesnik Collection. Vendar pa med njimi obstaja nekaj razlik.

Seznam

velikosti pisave v lateksu

Set

Seznam je urejeno zaporedje. Množica je neurejeno zaporedje.
Seznam dovoljuje podvojene elemente Set ne dovoljuje podvojenih elementov.
Do elementov je mogoče dostopati po njihovem položaju. Dostop do elementov s položajem ni dovoljen.
Shranite lahko več ničelnih elementov. Ničelni element se lahko shrani samo enkrat.
Implementacije seznamov so ArrayList, LinkedList, Vector, Stack Implementacije nabora so HashSet, LinkedHashSet.

Povezava razredov z vmesnikom seznama Java

Zdaj pa razpravljajmo o razredih, ki implementirajo vmesnik seznama, za katere si najprej oglejte spodnjo slikovno predstavitev, da boste bolje razumeli vmesnik seznama. To je naslednje:

AbstractList , CopyOnWriteArrayList , in AbstractSequentialList so razredi, ki izvajajo vmesnik List. V vsakem od omenjenih razredov je implementirana posebna funkcionalnost. So naslednji:

  1. AbstractList: Ta razred se uporablja za implementacijo nespremenljivega seznama, za katerega je treba samo razširiti ta razred AbstractList in implementirati samo dobiti () in velikost () metode.
  2. CopyOnWriteArrayList: Ta razred izvaja vmesnik seznama. Je izboljšana različica ArrayList v katerem so vse spremembe (dodaj, nastavi, odstrani itd.) izvedene z izdelavo nove kopije seznama.
  3. AbstractSequentialList: Ta razred izvaja Zbirni vmesnik in razred AbstractCollection. Ta razred se uporablja za implementacijo nespremenljivega seznama, za katerega je treba samo razširiti ta razred AbstractList in implementirati samo dobiti () in velikost () metode.

Na ta način bomo nadaljevali.

  • ArrayList
  • Vektor
  • Stack
  • LinkedList

Razpravljajmo o njih zaporedno in jih implementirajo, da ugotovimo delovanje razredov z vmesnikom List.

1. ArrayList

ArrayList razred, ki je implementiran v ogrodje zbirke, nam nudi dinamična polja v Javi. Čeprav je morda počasnejši od standardnih nizov, je lahko koristen v programih, kjer je potrebnih veliko manipulacij z nizom. Poglejmo, kako ustvariti objekt seznama s tem razredom.

primer:

Java




// Java program to demonstrate the> // creation of list object using the> // ArrayList class> > import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Size of ArrayList> >int> n =>5>;> > >// Declaring the List with initial size n> >List arrli =>new> ArrayList(n);> > >// Appending the new elements> >// at the end of the list> >for> (>int> i =>1>; i <= n; i++)> >arrli.add(i);> > >// Printing elements> >System.out.println(arrli);> > >// Remove element at index 3> >arrli.remove(>3>);> > >// Displaying the list after deletion> >System.out.println(arrli);> > >// Printing elements one by one> >for> (>int> i =>0>; i System.out.print(arrli.get(i) + ' '); } }>

>

>

Izhod

[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>

2. Vektor

Vektor je razred, ki je implementiran v zbirnem ogrodju in implementira rastoč niz predmetov. Vector implementira dinamično polje, kar pomeni, da se lahko po potrebi poveča ali skrči. Tako kot polje vsebuje komponente, do katerih je mogoče dostopati s celoštevilskim indeksom. Vektorji v bistvu spadajo v podedovane razrede, zdaj pa so popolnoma združljivi z zbirkami. Poglejmo, kako ustvariti objekt seznama s tem razredom.

primer:

Java




// Java program to demonstrate the> // creation of list object using the> // Vector class> > import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Size of the vector> >int> n =>5>;> > >// Declaring the List with initial size n> >List v =>new> Vector(n);> > >// Appending the new elements> >// at the end of the list> >for> (>int> i =>1>; i <= n; i++)> >v.add(i);> > >// Printing elements> >System.out.println(v);> > >// Remove element at index 3> >v.remove(>3>);> > >// Displaying the list after deletion> >System.out.println(v);> > >// Printing elements one by one> >for> (>int> i =>0>; i System.out.print(v.get(i) + ' '); } }>

>

>

Izhod

[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>

3. Zložite

Stack je razred, ki je implementiran v okvir zbirke in razširja modele vektorskih razredov ter izvaja primer:

Java

primer:

Java




// Java program to demonstrate the> // creation of list object using the> // Stack class> > import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Size of the stack> >int> n =>5>;> > >// Declaring the List> >List s =>new> Stack();> > >// Appending the new elements> >// at the end of the list> >for> (>int> i =>1>; i <= n; i++)> >s.add(i);> > >// Printing elements> >System.out.println(s);> > >// Remove element at index 3> >s.remove(>3>);> > >// Displaying the list after deletion> >System.out.println(s);> > >// Printing elements one by one> >for> (>int> i =>0>; i System.out.print(s.get(i) + ' '); } }>

>

java string format long

>

Izhod

[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>

4. LinkedList

primer:

Java

LinkedList je razred, ki je implementiran v ogrodju zbirke, ki samo po sebi implementira primer:

Java

primer:

Java




// Java program to demonstrate the> // creation of list object using the> // LinkedList class> > import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Size of the LinkedList> >int> n =>5>;> > >// Declaring the List with initial size n> >List ll =>new> LinkedList();> > >// Appending the new elements> >// at the end of the list> >for> (>int> i =>1>; i <= n; i++)> >ll.add(i);> > >// Printing elements> >System.out.println(ll);> > >// Remove element at index 3> >ll.remove(>3>);> > >// Displaying the list after deletion> >System.out.println(ll);> > >// Printing elements one by one> >for> (>int> i =>0>; i System.out.print(ll.get(i) + ' '); } }>

>

>

Izhod

[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>