Heim >Java >javaLernprogramm >So definieren und implementieren Sie ArrayList und Sequenzliste in Java

So definieren und implementieren Sie ArrayList und Sequenzliste in Java

WBOY
WBOYnach vorne
2023-05-18 14:04:46777Durchsuche

    1. Lineare Tabelle

    Definition

    Eine lineare Tabelle ist die grundlegendste, einfachste und am häufigsten verwendete Datenstruktur. Eine endliche Folge, die n Datenelemente mit denselben Eigenschaften enthält, wird als lineare Liste bezeichnet und ist eine Art Datenstruktur.

    Gemeinsame lineare Listen: sequentielle Listen, verknüpfte Listen, Stapel, Warteschlangen ...

    Lineare Listen sind logisch lineare Strukturen, das heißt, sie sind eine kontinuierliche gerade Linie. Die physische Speicherform linearer Tabellen ist normalerweise eine Array- oder verknüpfte Listenstruktur, sie ist jedoch nicht unbedingt kontinuierlich.

    Funktionen

    • Es darf nur ein „erstes Element“ im Set vorhanden sein.

    • Es darf nur ein „letztes Element“ im Set vorhanden sein.

    • Bis auf das letzte Element haben alle Elemente einen eindeutigen Nachfolger (Konsequenz).

    • Mit Ausnahme des ersten Elements haben alle Elemente einen eindeutigen Vorläufer (Vorläufer).

    2. Sequenztabelle

    Definition

    Eine lineare Struktur, die normalerweise in Form eines Arrays gespeichert wird, wird als Sequenztabelle bezeichnet, die Datenelemente nacheinander in einer Speichereinheit mit kontinuierlichen physischen Adressen speichert. Schließen Sie das Hinzufügen, Löschen, Überprüfen und Ändern von Daten im Array ab.

    Implementierung

    Zuerst müssen wir ein Array zum Speichern von Daten erstellen.

    So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Hinweis: Da ich der Einfachheit halber zuerst das Ganzzahl-Array erstellt habe, können Sie zur besseren Anpassung an verschiedene Typen ein generisches Array erstellen, über das ich hier nicht schreiben werde.

    So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Der nächste Schritt besteht darin, verschiedene Operationen an der Sequenztabelle durchzuführen. Zum Beispiel: grundlegendes CURD, Drucken der Sequenztabelle, Abrufen der Sequenztabellenlänge, Löschen der Sequenztabelle usw.

    Array drucken

    Da es sich um ein Array handelt, durchlaufen Sie einfach das Array und drucken es direkt aus Treffen Sie eine Beurteilung, ob der Array-Speicherplatz voll ist und erweitert werden muss. Darüber hinaus müssen wir auch feststellen, ob diese Position legal ist.

    So beurteilen Sie, ob der Speicherplatz voll istSo definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Hier vereinfachen wir den Code wie folgt:

    So definieren und implementieren Sie ArrayList und Sequenzliste in JavaWenn Sie die Kapazität erweitern möchten, nachdem die Erweiterung abgeschlossen ist, da die Sequenztabelle eine kontinuierliche Struktur ist, Fügen Sie Elemente an der Pos-Position hinzu, dann werden die Elemente nach der Pos-Position nacheinander nach hinten verschoben. Nur so können neue Elemente hinzugefügt werden.

    So definieren und implementieren Sie ArrayList und Sequenzliste in Java Hinweis: Nach der Erweiterung müssen wir die Größe von CAPACITY und usedSize ändern.

    Bestimmen Sie, ob es ein bestimmtes Element enthält.

    Hier müssen wir prüfen, ob das Array zu diesem Zeitpunkt leer ist. So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Danach durchqueren wir das Array immer noch direkt.

    So definieren und implementieren Sie ArrayList und Sequenzliste in JavaDie Suche nach Elementen

    erfordert auch hier eine Nulloperation.

    So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Holen Sie sich das Element an der Position pos

    Es kann Situationen geben, in denen das Array leer ist und pos unzulässig ist, daher ist eine Beurteilung erforderlich.

    Ich löse hier Ausnahmen manuell aus, ich habe nichts anderes geschrieben. So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Ändern Sie den Wert der Pos-Position

    So definieren und implementieren Sie ArrayList und Sequenzliste in JavaLöschvorgang

    Um ein Element an einer bestimmten Position zu löschen, kann das dahinter liegende Element es direkt überschreiben, um eine Löschung zu erreichen.

    So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Ermitteln Sie die Länge der Sequenztabelle.

    So definieren und implementieren Sie ArrayList und Sequenzliste in JavaLöschen Sie die Sequenztabelle.

    So definieren und implementieren Sie ArrayList und Sequenzliste in JavaDie folgenden Vorgänge sind relativ einfach und werden nicht im Detail beschrieben.

    3. ArrayList

    Einführung:

    ArrayList ist eine gewöhnliche Klasse, die die List-Schnittstelle implementiert. Das spezifische Framework-Diagramm lautet wie folgt:

    So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    ArrayList implementiert RandomAccess-Schnittstelle, die angibt, dass ArrayList Direktzugriff unterstützt.

      ArrayList implementiert die Cloneable-Schnittstelle und gibt an, dass ArrayList geklont werden kann.
    1. ArrayList implementiert die Serializable-Schnittstelle und gibt an, dass ArrayList die Serialisierung unterstützt.
    2. Im Gegensatz zu Vector ist ArrayList nicht threadsicher und kann in einzelnen Threads verwendet werden. In Multithreads können Sie Vector oder CopyOnWriteArrayList wählen.
    3. Die unterste Ebene von ArrayList ist ein kontinuierlicher Raum und kann dynamisch erweitert werden. Es handelt sich um eine dynamische Typsequenzliste.
    4. Verwenden Sie
    5.  public static void main(String[] args) {
              // ArrayList创建,推荐写法
              // 构造一个空的列表
              List<Integer> list1 = new ArrayList<>();
       
              // 构造一个具有10个容量的列表
              List<Integer> list2 = new ArrayList<>(10);
              list2.add(1);
              list2.add(2);
              list2.add(3);
       
              // list2.add("hello"); // 编译失败,List<Integer>已经限定了,list2中只能存储整形元素
              // list3构造好之后,与list中的元素一致
              ArrayList<Integer> list3 = new ArrayList<>(list2);
       
              // 避免省略类型,否则:任意类型的元素都可以存放,使用时将是一场灾难
              List list4 = new ArrayList();
              list4.add("111");
              list4.add(100);
          }

      Einige gängige Methoden

    Erklärung der Methode

    ArrayList-TraversalLoop-TraversalIteratorSequentielle Tabelle und Nummer Der Unterschied zwischen Gruppen:
    boolean add(E e) Tail insert e
    void add(int index, E element) Fügen Sie e an der Indexposition ein das Indexpositionselement und gibt
    boolean remove(Object o) Löschen Sie das erste gefundene o
    E get(int index) Holen Sie sich das tiefgestellte Indexpositionselement
    E set(int index , E-Element) Setzen Sie das Indexpositionselement des Index auf Element
    void clear() Löschen Sie die Sequenztabelle
    boolean enthält (Objekt o) Beurteilen Sie, ob sich o in der linearen Tabelle befindet
    int indexOf(Object o) Gibt den Index des ersten o zurück
    int lastIndexOf(Object o) Gibt den Index des letzten o zurück
    List subList(int fromIndex, int toIndex) Teil der Liste abfangen
    foreach-Traversal
            System.out.println("======迭代器1=========");
     
            ElementObservableListDecorator<Object> list;
            Iterator<String> it =  list.iterator();
            while (it.hasNext()) {
                System.out.println(it.next());
            }
            System.out.println("======迭代器2=========");
            ListIterator<String> it2 =  list.listIterator();
            while (it2.hasNext()) {
                System.out.println(it2.next());
            }

    Wie oben erwähnt, kann die unterste Ebene der Sequenztabelle als Array verstanden werden, ist jedoch im Vergleich zum Array fortgeschrittener.

    Die Sequenztabelle kann selbst erweitert werden.

    Die Sequenztabelle unterscheidet strikt zwischen der Array-Kapazität und der Anzahl der Elemente. So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Ein Array ist also eigentlich eine unvollständige Sequenzliste.

    Zu beachtende Punkte in der Sequenztabelle: So definieren und implementieren Sie ArrayList und Sequenzliste in Java

    Wir müssen in der Sequenztabelle zwischen zwei Konzepten unterscheiden: Kapazität (Kapazität) und Anzahl der Elemente (Größe).

    Kapazität kann als die Größe (Länge) des Arrays verstanden werden, und die Anzahl der Elemente ist die Anzahl der in der Größe aufgezeichneten gültigen Elemente.

    In der Sequenztabelle müssen die Daten kontinuierlich gespeichert werden und es dürfen keine „Lücken“ zwischen Elementen entstehen. Beim Einfügen, Löschen und anderen Vorgängen muss die Kontinuität der Sequenztabelle auch nach der Operation gewährleistet sein ist abgeschlossen.

    Das obige ist der detaillierte Inhalt vonSo definieren und implementieren Sie ArrayList und Sequenzliste in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen