logo

Listegrensesnitt i Java med eksempler

Listegrensesnittet i Java gir en måte å lagre den bestilte samlingen på. Det er et barnegrensesnitt av Samling . Det er en ordnet samling av objekter der dupliserte verdier kan lagres. Siden List bevarer innsettingsrekkefølgen, tillater den posisjonstilgang og innsetting av elementer.

Innholdsfortegnelse

Listegrensesnitt i Java

Liste-grensesnittet finnes i java.util-pakken og arver Collection-grensesnittet. Det er en fabrikk av ListIterator-grensesnittet. Gjennom ListIterator kan vi iterere listen i retning forover og bakover. Implementeringsklassene til List-grensesnittet er ArrayList, LinkedList, Stack og Vector. ArrayList og LinkedList er mye brukt i Java-programmering. Vector-klassen er utdatert siden Java 5.



List og ArrayList i Java Collection Framework

Erklæring om Java List Interface

public interface List extends Collection ;>

La oss utdype hvordan du oppretter objekter eller forekomster i en listeklasse. Siden Liste er en grensesnitt , objekter kan ikke opprettes av typelisten. Vi trenger alltid en klasse som implementerer dette Liste for å lage et objekt. Og også, etter introduksjonen av Generiske legemidler i Java 1.5 er det mulig å begrense typen objekt som kan lagres i listen. Akkurat som flere andre brukerdefinerte 'grensesnitt' implementert av brukerdefinerte 'klasser', Liste er et 'grensesnitt', implementert av ArrayList klasse, forhåndsdefinert i java.util pakke.

Syntaks for Java List

Denne typen safelist kan defineres som:

List list = new ArrayList ();>

Merk: Obj er typen objekt som skal lagres i List

Eksempel på Java List

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

>

>

Produksjon

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

La oss nå utføre forskjellige operasjoner ved å bruke List Interface for å få en bedre forståelse av det samme. Vi vil diskutere følgende operasjoner oppført nedenfor og senere implementere dem via rene Java-koder.

Operasjoner i et Java List Interface

Siden List er et grensesnitt, kan det bare brukes med en klasse som implementerer dette grensesnittet. La oss nå se hvordan du utfører noen få ofte brukte operasjoner på listen.

  • Operasjon 1: Legge til elementer i List-klassen ved å bruke add()-metoden
  • Operasjon 2: Oppdatering av elementer i List-klassen ved hjelp av set()-metoden
  • Operasjon 3: Søker etter elementer ved hjelp av indexOf(), lastIndexOf-metoder
  • Operasjon 4: Fjerne elementer ved å bruke remove()-metoden
  • Operasjon 5: Tilgang til elementer i List-klassen ved å bruke get()-metoden
  • Operasjon 6: Kontrollerer om et element er til stede i List-klassen ved å bruke contains()-metoden

La oss nå diskutere operasjonene individuelt og implementere det samme i koden for å få et bedre grep om den.

1. Legge til elementer til List klasse ved hjelp av add() metode

For å legge til et element i listen, kan vi bruke Legg til() metode. Denne metoden er overbelastet for å utføre flere operasjoner basert på forskjellige parametere.

Parametere: Det tar 2 parametere, nemlig:

  • add(Objekt): Denne metoden brukes til å legge til et element på slutten av listen.
  • add(int index, Object): Denne metoden brukes til å legge til et element i en bestemt indeks i listen

Eksempel:

Java

hvordan finner jeg ut størrelsen på skjermen min




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

>

>

Produksjon

[Geeks, For, Geeks]>

2. Oppdatering av elementer

Etter å ha lagt til elementene, hvis vi ønsker å endre elementet, kan det gjøres ved å bruke sett() metode. Siden List er indeksert, blir elementet som vi ønsker å endre referert til av indeksen til elementet. Derfor tar denne metoden en indeks og det oppdaterte elementet som må settes inn i den indeksen.

Eksempel:

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

>

>

Produksjon

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

3. Søker etter elementer

Å søke etter elementer i List-grensesnittet er en vanlig operasjon i Java-programmering. Liste-grensesnittet gir flere metoder for å søke etter elementer, for eksempel oversikt over() , lastIndexOf() metoder.

indexOf()-metoden returnerer indeksen for den første forekomsten av et spesifisert element i listen, mens lastIndexOf()-metoden returnerer indeksen for den siste forekomsten av et spesifisert element.

Parametere:

  • indexOf(element): Returnerer indeksen for den første forekomsten av det angitte elementet i listen, eller -1 hvis elementet ikke finnes
  • lastIndexOf(element): Returnerer indeksen for siste forekomst av det angitte elementet i listen, eller -1 hvis elementet ikke finnes

Eksempel:

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

>

>

Produksjon

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

4. Fjerning av elementer

For å fjerne et element fra en liste, kan vi bruke fjerne() metode. Denne metoden er overbelastet for å utføre flere operasjoner basert på forskjellige parametere. De er:

Parametere:

  • fjern (objekt): Denne metoden brukes til å fjerne et objekt fra listen. Hvis det er flere slike objekter, fjernes den første forekomsten av objektet.
  • remove(int index): Siden en liste er indeksert, tar denne metoden en heltallsverdi som ganske enkelt fjerner elementet som er tilstede i den spesifikke indeksen i listen. Etter å ha fjernet elementet, flyttes alle elementene til venstre for å fylle plassen og indeksene til objektene oppdateres.

Eksempel:

Java

ins nøkkel




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

>

>

Produksjon

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

5. Tilgang til elementer

For å få tilgang til et element i listen, kan vi bruke få() metode, som returnerer elementet ved den angitte indeksen

Parametere:

get(int index): Denne metoden returnerer elementet ved den angitte indeksen i listen.

Eksempel:

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

>

>

Produksjon

Geeks For Geeks [Geeks, For, Geeks]>

6. Sjekker om et element er til stede i listen

For å sjekke om et element er til stede i listen, kan vi bruke inneholder() metode. Denne metoden returnerer true hvis det angitte elementet er til stede i listen, ellers returnerer den usann.

Parametere:

contains(Object): Denne metoden tar en enkelt parameter, objektet som skal sjekkes hvis det finnes i listen.

Eksempel:

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

>

>

Produksjon

Is Geeks present in the list? true>

Kompleksiteten til listegrensesnitt i Java

Operasjon

Tidskompleksitet

Plass kompleksitet

Legger til element i listegrensesnitt

O(1)

O(1)

Fjern element fra listegrensesnitt

PÅ)

PÅ)

les json-filer

Erstatt element i listegrensesnitt

PÅ)

PÅ)

Traversing List Interface

PÅ)

PÅ)

Iterering over listegrensesnitt i Java

Til nå har vi en veldig liten inndatastørrelse, og vi utfører operasjoner manuelt for hver enhet. La oss nå diskutere forskjellige måter vi kan iterere over listen på for å få dem til å fungere for et større prøvesett.

Metoder: Det er flere måter å iterere gjennom listen. De mest kjente måtene er ved å bruke de grunnleggende for løkke i kombinasjon med en get() metoden for å få elementet på en bestemt indeks og avansert for en loop .

Eksempel:

slå sammen sortering i java

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 + ' '); } }>

>

>

Produksjon

Geeks For Geeks Geeks For Geeks>

Metoder for listegrensesnittet

Siden hovedkonseptet bak de forskjellige typene lister er det samme, inneholder listegrensesnittet følgende metoder:

Metode

Beskrivelse

add(int indeks, element) Denne metoden brukes med Java List Interface for å legge til et element i en bestemt indeks i listen. Når en enkelt parameter sendes, legger den ganske enkelt til elementet på slutten av listen.
addAll(int-indeks, samlingssamling) Denne metoden brukes med List Interface i Java for å legge til alle elementene i den gitte samlingen til listen. Når en enkelt parameter sendes, legger den til alle elementene i den gitte samlingen på slutten av listen.
størrelse() Denne metoden brukes med Java List Interface for å returnere størrelsen på listen.
klar() Denne metoden brukes til å fjerne alle elementene i listen. Referansen til den opprettede listen er imidlertid fortsatt lagret.
remove(int index) Denne metoden fjerner et element fra den angitte indeksen. Den flytter påfølgende elementer (hvis noen) til venstre og reduserer indeksene deres med 1.
fjerne (element) Denne metoden brukes med Java List Interface for å fjerne den første forekomsten av det gitte elementet i listen.
get (int indeks) Denne metoden returnerer elementer ved den angitte indeksen.
sett(int indeks, element) Denne metoden erstatter elementer ved en gitt indeks med det nye elementet. Denne funksjonen returnerer elementet som nettopp ble erstattet av et nytt element.
indeksOf(element) Denne metoden returnerer den første forekomsten av det gitte elementet eller -1 hvis elementet ikke er til stede i listen.
lastIndexOf(element) Denne metoden returnerer siste forekomst av det gitte elementet eller -1 hvis elementet ikke er til stede i listen.
lik(element) Denne metoden brukes med Java List Interface for å sammenligne likheten til det gitte elementet med elementene i listen.
hashkode() Denne metoden brukes med List Interface i Java for å returnere hashkodeverdien til den gitte listen.
er tom() Denne metoden brukes med Java List Interface for å sjekke om listen er tom eller ikke. Den returnerer true hvis listen er tom, ellers usant.
inneholder(element) Denne metoden brukes med List Interface i Java for å sjekke om listen inneholder det gitte elementet eller ikke. Det returnerer sant hvis listen inneholder elementet.
containsAll (samlingssamling) Denne metoden brukes med Java List Interface for å sjekke om listen inneholder all samlingen av elementer.
sorter (sammenligningskomp) Denne metoden brukes med List Interface i Java for å sortere elementene i listen på grunnlag av det gitte komparator .

Java List vs Set

Både List-grensesnittet og Set-grensesnittet arver Collection-grensesnittet. Det er imidlertid noen forskjeller mellom dem.

Liste

Sett

Listen er en ordnet sekvens. Settet er en uordnet sekvens.
Liste tillater dupliserte elementer Settet tillater ikke dupliserte elementer.
Elementer etter posisjon kan nås. Posisjonstilgang til elementer er ikke tillatt.
Flere nullelementer kan lagres. Null-elementet kan bare lagres én gang.
Listeimplementeringer er ArrayList, LinkedList, Vector, Stack Settimplementeringer er HashSet, LinkedHashSet.

Klassetilknytning med et Java List Interface

La oss nå diskutere klassene som implementerer listegrensesnittet som først refererer til billedrepresentasjonen nedenfor for å få en bedre forståelse av listegrensesnittet. Det er som følger:

Abstrakt liste , CopyOnWriteArrayList , og Abstrakt sekvensliste er klassene som implementerer List-grensesnittet. En egen funksjonalitet er implementert i hver av de nevnte klassene. De er som følger:

  1. Abstrakt liste: Denne klassen brukes til å implementere en ikke-modifiserbar liste, for hvilken man bare trenger å utvide denne AbstractList-klassen og implementere bare få() og størrelse() metoder.
  2. CopyOnWriteArrayList: Denne klassen implementerer listegrensesnittet. Det er en forbedret versjon av ArrayList der alle endringene (legg til, sett, fjern, etc.) implementeres ved å lage en ny kopi av listen.
  3. Abstrakt sekvensliste: Denne klassen implementerer Samlingsgrensesnitt og AbstractCollection-klassen. Denne klassen brukes til å implementere en ikke-modifiserbar liste, for hvilken man bare trenger å utvide denne AbstractList-klassen og implementere bare få() og størrelse() metoder.

Vi vil gå frem på denne måten.

  • ArrayList
  • Vektor
  • Stable
  • LinkedList

La oss diskutere dem sekvensielt og implementere det samme for å finne ut hvordan klassene fungerer med List-grensesnittet.

1. ArrayList

En ArrayList klasse som er implementert i samlingsrammeverket gir oss dynamiske arrays i Java. Skjønt, det kan være tregere enn standard arrays, men kan være nyttig i programmer der mye manipulasjon i arrayen er nødvendig. La oss se hvordan du lager et listeobjekt ved hjelp av denne klassen.

Eksempel:

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) + ' '); } }>

>

>

Produksjon

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

2. Vektor

Vector er en klasse som er implementert i samlingsrammeverket implementerer en rekke objekter som kan vokse. Vector implementerer en dynamisk matrise som betyr at den kan vokse eller krympe etter behov. Som en matrise inneholder den komponenter som kan nås ved hjelp av en heltallsindeks. Vektorer faller i utgangspunktet i eldre klasser, men nå er det fullt kompatibelt med samlinger. La oss se hvordan du lager et listeobjekt ved hjelp av denne klassen.

Eksempel:

Java




vannmerke i word
// 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) + ' '); } }>

>

>

Produksjon

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

3. Stable

Stack er en klasse som er implementert i samlingsrammeverket og utvider vektorklassemodellene og implementerer Eksempel:

Java

Eksempel:

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) + ' '); } }>

>

>

Produksjon

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

4. LinkedList

Eksempel:

Java

LinkedList er en klasse som er implementert i samlingsrammeverket som iboende implementerer Eksempel:

Java

Eksempel:

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) + ' '); } }>

>

>

Produksjon

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