[Java-Grundlagen] Detaillierte Erläuterung der Java-Liste

Vorwort

Im Sammlungsframework von Java Listist eine Schnittstelle eine geordnete, wiederholbare Sammlung, die Collectiondie Schnittstelle erweitert und eine Reihe von Operationen und Methoden zum Verarbeiten von Elementlisten bereitstellt. In diesem Artikel werden Schnittstellen in Java und ihre allgemeinen Implementierungsklassen, einschließlich , und , Listausführlich vorgestellt und einige Beispielcodes bereitgestellt.ArrayListLinkedListVector

1. Listenübersicht

ListInterface erbt von CollectionInterface und fügt einige Operationen zu geordneten Listen hinzu. Es ermöglicht die Duplizierung von Elementen und bietet Methoden zum Zugreifen auf, Hinzufügen, Löschen und Ersetzen von Elementen basierend auf dem Index. In Java Listverfügen Schnittstellen über mehrere gemeinsame Implementierungsklassen mit jeweils unterschiedlicher Leistung und Verwendung.

  • ArrayList: Basierend auf der Implementierung eines dynamischen Arrays unterstützt es Direktzugriff und schnelles Durchlaufen und eignet sich für Szenarien mit vielen Lese- und Änderungsvorgängen.
  • LinkedList: Basierend auf der Implementierung einer doppelt verknüpften Liste, unterstützt effiziente Einfüge- und Löschvorgänge und ist für häufige Einfüge- und Löschvorgänge geeignet.
  • Vector: ArrayListÄhnlich wie , aber threadsicher und für Multithread-Umgebungen geeignet.

2. ArrayList

ArrayListEs handelt sich um Listeine allgemeine Implementierungsklasse der Schnittstelle. Sie basiert auf der dynamischen Array-Implementierung und kann die Größe des Arrays bei Bedarf automatisch erweitern und verkleinern. Hier sind einige häufig verwendete ArrayListMethoden:

  • add(E element): Fügt ein Element am Ende der Liste hinzu.
  • get(int index): Ruft das Element an der angegebenen Indexposition ab.
  • set(int index, E element): Ersetzt das Element an der angegebenen Indexposition.
  • remove(int index): Entfernen Sie das Element an der angegebenen Indexposition.
  • size(): Gibt die Größe der Liste zurück.

Hier ist ein ArrayListverwendeter Beispielcode:

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    
    
    public static void main(String[] args) {
    
    
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");

        System.out.println("Fruits: " + fruits);

        fruits.remove(1);
        System.out.println("Fruits after removal: " + fruits);

        String fruit = fruits.get(0);
        System.out.println("First fruit: " + fruit);
    }
}

Im obigen Beispiel haben wir eine ArrayListInstanz erstellt und einige Früchte hinzugefügt. Dann entfernen wir ein Element aus der Liste und erhalten das erste Element in der Liste. Abschließend drucken wir den Inhalt der Liste aus.

三、LinkedList

LinkedListEs handelt sich um Listeine weitere Implementierungsklasse der Schnittstelle, die auf Basis einer doppelt verknüpften Liste implementiert wird. Im Vergleich zu ist es bei häufigen Einfüge- ArrayListund LinkedListLöschvorgängen effizienter. Hier sind einige häufig verwendete LinkedListMethoden:

  • add(E element): Fügt ein Element am Ende der Liste hinzu.
  • get(int index): Ruft das Element an der angegebenen Indexposition ab.
  • set(int index, E element): Ersetzt das Element an der angegebenen Indexposition.
  • remove(int index): Entfernen Sie das Element an der angegebenen Indexposition.
  • size(): Gibt die Größe der Liste zurück.

Hier ist ein LinkedListverwendeter Beispielcode:

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    
    
    public static void main(String[] args) {
    
    
        List<String> names = new LinkedList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        System.out.println("Names: " + names);

        names.remove(1);
        System.out.println("Names after removal: " + names);

        String name = names.get(0);
        System.out.println("First name: " + name);
    }
}

Im obigen Beispiel haben wir eine LinkedListInstanz erstellt und einige Namen hinzugefügt. Dann entfernen wir ein Element aus der Liste und erhalten den ersten Namen in der Liste. Abschließend drucken wir den Inhalt der Liste aus.

四、Vektor

VectorIst Listeine weitere Implementierungsklasse der Schnittstelle, ArrayListähnlich wie , aber threadsicher. Vectorfunktioniert auf die ArrayListgleiche Weise wie , die Leistung kann jedoch aufgrund des zusätzlichen Overheads der Thread-Synchronisierung geringer sein. Hier sind einige häufig verwendete VectorMethoden:

  • add(E element): Fügt ein Element am Ende der Liste hinzu.
  • get(int index): Ruft das Element an der angegebenen Indexposition ab.
  • set(int index, E element): Ersetzt das Element an der angegebenen Indexposition.
  • remove(int index): Entfernen Sie das Element an der angegebenen Indexposition.
  • size(): Gibt die Größe der Liste zurück.

Hier ist ein Vectorverwendeter Beispielcode:

import java.util.Vector;
import java.util.List;

public class VectorExample {
    
    
    public static void main(String[] args) {
    
    
        List<String> colors = new Vector<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");

        System.out.println("Colors: " + colors);

        colors.remove(1);
        System.out.println("Colors after removal: " + colors);

        String color = colors.get(0);
        System.out.println("First color: " + color);
    }
}

Im obigen Beispiel haben wir eine VectorInstanz erstellt und einige Farben hinzugefügt. Dann entfernen wir ein Element aus der Liste und erhalten die erste Farbe in der Liste. Abschließend drucken wir den Inhalt der Liste aus.

Zusammenfassen

In diesem Artikel bieten wir eine detaillierte Einführung in ListSchnittstellen in Java und ihre gemeinsamen Implementierungsklassen: ArrayList, LinkedListund Vector. Durch das Verständnis ihrer Eigenschaften und Verwendung können Sie die geeignete ListImplementierungsklasse auswählen, um die Elementliste entsprechend Ihren tatsächlichen Anforderungen zu betreiben und zu verwalten.

ArrayListEs eignet sich für Szenarien mit vielen Lese- und Änderungsvorgängen, LinkedListfür häufige Einfüge- und Löschvorgänge und Vectorfür Multithread-Umgebungen.

Ich hoffe, dass dieser Artikel Ihnen hilft, Java- ListSchnittstellen zu verstehen und zu verwenden!

Verweise:

Anbei: Beispielcode

[ArrayListExample.java]

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    
    
    public static void main(String[] args) {
    
    
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");

        System.out.println("Fruits: " + fruits);

        fruits.remove(1);
        System.out.println("Fruits after removal: " + fruits);

        String fruit = fruits.get(0);
        System.out.println("First fruit: " + fruit);
    }
}

[LinkedListExample.java]

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    
    
    public static void main(String[] args) {
    
    
        List<String> names = new LinkedList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        System.out.println("Names: " + names);

        names.remove(1);
        System.out.println("Names after removal: " + names);

        String name = names.get(0);
        System.out.println("First name: " + name);
    }
}

[VectorExample.java]

import java.util.Vector;
import java.util.List;

public class VectorExample {
    
    
    public static void main(String[] args) {
    
    
        List<String> colors = new Vector<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");

        System.out.println("Colors: " + colors);

        colors.remove(1);
        System.out.println("Colors after removal: " + colors);

        String color = colors.get(0);
        System.out.println("First color: " + color);
    }
}

おすすめ

転載: blog.csdn.net/qq_21484461/article/details/131383738