I denne vejledning lærer vi om List-grænsefladen i Java og dens metoder.
I Java er List
grænsefladen en ordnet samling, der giver os mulighed for at gemme og få adgang til elementer sekventielt. Det udvider Collection
grænsefladen.
Klasser, der implementerer listen
Da det List
er en grænseflade, kan vi ikke oprette objekter ud fra det.
For at kunne bruge funktionerne i List
grænsefladen kan vi bruge disse klasser:
- ArrayList
- LinkedList
- Vektor
- Stak
Disse klasser er defineret i rammerne for samlinger og implementerer List
grænsefladen.
Hvordan bruges List?
I Java skal vi importere java.util.List
pakken for at kunne bruge den List
.
// ArrayList implementation of List List list1 = new ArrayList(); // LinkedList implementation of List List list2 = new LinkedList();
Her har vi oprettet objekter liste1 og liste2 over klasser ArrayList
og LinkedList
. Disse objekter kan bruge funktionerne i List
grænsefladen.
Metoder til liste
Den List
grænseflade omfatter alle fremgangsmåderne ifølge Collection
grænsefladen. Det er fordi det Collection
er et super interface af List
.
Nogle af de almindeligt anvendte metoder til Collection
grænsefladen, der også er tilgængelige i List
grænsefladen, er:
add()
- tilføjer et element til en listeaddAll()
- tilføjer alle elementer på en liste til en andenget()
- hjælper med at tilfældigt få adgang til elementer fra listeriterator()
- returnerer iteratorobjekt, der kan bruges til sekventielt at få adgang til elementer på listerset()
- ændrer elementer på listerremove()
- fjerner et element fra listenremoveAll()
- fjerner alle elementerne fra listenclear()
- fjerner alle elementerne fra listen (mere effektiv endremoveAll()
)size()
- returnerer længden af listertoArray()
- konverterer en liste til en matrixcontains()
- vender tilbage,true
hvis en liste indeholder specificeret element
Implementering af listegrænsefladen
1. Implementering af ArrayList-klassen
import java.util.List; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating list using the ArrayList class List numbers = new ArrayList(); // Add elements to the list numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); // Access element from the list int number = numbers.get(2); System.out.println("Accessed Element: " + number); // Remove element from the list int removedNumber = numbers.remove(1); System.out.println("Removed Element: " + removedNumber); ) )
Produktion
Liste: (1, 2, 3) Element, der er adgang til: 3 Fjernet element: 2
For at lære mere om det ArrayList
, besøg Java ArrayList.
2. Implementering af LinkedList-klassen
import java.util.List; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating list using the LinkedList class List numbers = new LinkedList(); // Add elements to the list numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); // Access element from the list int number = numbers.get(2); System.out.println("Accessed Element: " + number); // Using the indexOf() method int index = numbers.indexOf(2); System.out.println("Position of 3 is " + index); // Remove element from the list int removedNumber = numbers.remove(1); System.out.println("Removed Element: " + removedNumber); ) )
Produktion
Liste: (1, 2, 3) Element, der er adgang til: 3 Position af 3 er 1 Fjernet element: 2
For at lære mere om det LinkedList
, besøg Java LinkedList.
Java-liste vs. sæt
Både List
grænsefladen og Set
grænsefladen arver Collection
grænsefladen. Der er dog en vis forskel mellem dem.
- Lister kan omfatte duplikatelementer. Sæt kan dog ikke have duplikatelementer.
- Elementer i lister gemmes i en rækkefølge. Element i sæt gemmes dog i grupper som sæt i matematik.
Nu hvor vi ved, hvad der List
er, vil vi se dens implementeringer i ArrayList
og LinkedList
klasser i detaljer i de næste selvstudier.