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.
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).
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.
Zuerst müssen wir ein Array zum Speichern von Daten erstellen.
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.
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.
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 ist
Hier vereinfachen wir den Code wie folgt:
Wenn 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.
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.
Die Suche nach Elementen
erfordert auch hier eine Nulloperation.
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.
Ändern Sie den Wert der Pos-Position
Löschvorgang
Löschen Sie die Sequenztabelle.
Die folgenden Vorgänge sind relativ einfach und werden nicht im Detail beschrieben.
ArrayList ist eine gewöhnliche Klasse, die die List-Schnittstelle implementiert. Das spezifische Framework-Diagramm lautet wie folgt:
ArrayList implementiert RandomAccess-Schnittstelle, die angibt, dass ArrayList Direktzugriff unterstützt.
public static void main(String[] args) { // ArrayList创建,推荐写法 // 构造一个空的列表 Listlist1 = new ArrayList<>(); // 构造一个具有10个容量的列表 List list2 = new ArrayList<>(10); list2.add(1); list2.add(2); list2.add(3); // list2.add("hello"); // 编译失败,List 已经限定了,list2中只能存储整形元素 // list3构造好之后,与list中的元素一致 ArrayList list3 = new ArrayList<>(list2); // 避免省略类型,否则:任意类型的元素都可以存放,使用时将是一场灾难 List list4 = new ArrayList(); list4.add("111"); list4.add(100); }
Einige gängige Methoden
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< E > subList(int fromIndex, int toIndex) | Teil der Liste abfangen |
ArrayList-Traversal | Loop-Traversal |
foreach-Traversal | |
Iterator |
System.out.println("======迭代器1========="); ElementObservableListDecorator
Nach dem Login kopieren
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. Ein Array ist also eigentlich eine unvollständige Sequenzliste.Zu beachtende Punkte in der Sequenztabelle: 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!
Vorheriger Artikel:So geben Sie die Anzahl aller Narzissen in Java in der Konsole aus
Nächster Artikel:Umgang mit Spring Boot-Datum und -Uhrzeit
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
|