


Was sind die Unterschiede zwischen häufig verwendeten Implementierungsklassen von Sammlungen?
1. Was ist eine Sammlung?
Sammlung ist die Verkörperung von Objektorientierung Wiederverwendbarkeit, Im Allgemeinen bezeichnen wir die Forschungsobjekte als Elemente. Die Gesamtheit einiger Elemente wird als Menge bezeichnet.
2. Eigenschaften von Mengenelementen
(1) Determinismus: Sei A eine gegebene Menge, x ist ein bestimmtes Objekt, dann ist es entweder ein Element von A oder kein Element von A. Eine und nur eine der beiden Situationen muss wahr sein (2) Gegenseitigkeit: Ein Element in einer bestimmten Menge bedeutet, dass es zu diesen verschiedenen Individuen gehört (Objekte) einer Menge, daher sollte dasselbe Element nicht wiederholt in derselben Menge vorkommen. (3) Unordnung: Im Allgemeinen wird die Reihenfolge zwischen Elementen nicht berücksichtigt, aber wenn spezielle Mengen wie Sequenzen ausgedrückt werden, wird sie normalerweise in der üblichen Weise geschrieben Reihenfolge der Zahlenachse von klein nach groß
Collection Collection Implementation Class
ArrayList Implementierungsmethode: Array-Implementierung Version: 1.2 Zeit: Veröffentlicht im Dezember 1998 Leicht (schnell ausgeführt) Thread unsicher (häufig verwendet)
Vektor-Implementierungsmethode: Array-Implementierung Version: 1.0 Zeit : Veröffentlicht im Mai 1995 Schwergewicht (läuft langsam) Thread-sicher
LinkedList-Implementierungsmethode: Linked-List-Implementierung
Array: kontinuierlicher Speicherplatz, schnelle Abfragegeschwindigkeit, direkter Zugriff auf Indizes, langsames Hinzufügen und Löschen, Hinzufügen und Löschen müssen die folgenden Daten vorwärts oder rückwärts verschieben
verknüpfte Liste: Knoten Assoziation, Abfragegeschwindigkeit ist langsam, verwenden Sie die vorherige, um die nächste zu finden, fügen Sie die schnell verknüpfte Liste hinzu und löschen Sie sie, verweisen Sie die vorherige direkt auf die neuen Daten und die nächste zeigt auch auf die neuen Daten
Vektorimplementierung Klasse Stack Stack LIFO (Last In First Out) Abfragen weniger hinzufügen und löschen mehr
3. So implementieren Sie einen Stapel in Java
a.Array b.LinkedList c.Stack-Klasse
Verwenden Sie LinkedList. Warum nicht Stack verwenden, um die Klasse zu implementieren? Da Stack das falsche von Vector erbt, stellt Vector die Add-Methode bereit, aber der Stack kann nur Pop und Push und nicht aus der Mitte eingefügt werden, was den Stack unsicher macht . Stack erbt Vector, daher verfügt Stack über viele Methoden, die nicht existieren sollten.
1 //用java创建一个栈 2 public class AStack { 3 public static void main(String[] args) { 4 Stacks s = new Stacks(); 5 s.push("lin"); 6 s.push("hello"); 7 s.push("hou"); 8 s.push(123); 9 System.out.println(s.pop());10 System.out.println(s.pop());11 System.out.println(s.pop());12 System.out.println(s.pop());13 }14 }15 class Stacks{16 //变继承复用为主核复用17 private LinkedList list = new LinkedList();18 public void push(Object o){19 list.addFirst(o);20 }21 public Object pop(){22 Object o = list.removeFirst();23 return o;24 }25 }
Kartensammlung
Element: Schlüssel-Wert-Paar (Schlüsselwert Rechts)
Merkmale: Der Schlüsselinhalt ist eindeutig und der entsprechende Wert, der dem Schlüssel entspricht, ist wiederholbar und ungeordnet
Verwendung: Wert anhand des Schlüssels finden
Beispiel: Wörterbuchwort - ErklärungWebsite-Benutzername - Passwort
Hauptmethode:
1.put (Objekt k, Objekt v): Fügen Sie das Schlüssel-Wert-Paar k-v in die Karte ein. Wenn k bereits vorhanden ist, ersetzt das neue v das alte v
2.get(Object k): Gibt v zurück
3.remove(Objeck k): Lösche das Objekt, in dem sich k befindet Schlüssel-Wert-Paar
4.containsKey(Object k): Bestimmen Sie, ob K in der Karte vorhanden ist
5.containsValue(Object v): Bestimmen Sie, ob v in der Karte vorhanden ist
Karte 3 Arten der Durchquerung
1. Wertdurchquerung
1 Collection c = map.values();2 Iterator i = c.iterator();3 while(i.hasNext()){4 System.out.println(i.next());5 }
2 🎜>
1 Set s = map.keySet();2 Iterator i = s.iterator();3 while(i.hasNext()){4 Object k = i.next();5 Object v = map.get(k);6 System.out.println(k+"+++"+v);7 }
3. Schlüsselwertdurchquerung
Das Map.Entry-Objekt kapselt einen Schlüssel und einen Wert
Implementierungsklasse:
1.HashMap: 1.2 erlaubt null als Schlüssel oder Wert
2.Hashtable: 1.0 erlaubt keine Null als Schlüssel oder Wert
3.Eigenschaften: Hashtable-Unterklassen sowohl Schlüssel als auch Wert. String ist im Allgemeinen Wird zum Lesen von Konfigurationsdateien verwendet
4.TreeMap: Implementiert SortcdMap (Unterschnittstelle von Map), um Schlüssel automatisch zu sortieren
-------------------------------------------------------- - ------------------------------------------------- - ------------------------------------------------- - ----- Wenn das oben Genannte falsch ist, freue ich mich über Experten, die auf die Fehler hinweisen. Wenn Sie kommunizieren möchten, senden Sie bitte eine E-Mail an meine E-Mail-Adresse 1206835721@qq. com
Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen häufig verwendeten Implementierungsklassen von Sammlungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



C -Sprachfunktionen sind die Grundlage für die Code -Modularisierung und das Programmaufbau. Sie bestehen aus Deklarationen (Funktionsüberschriften) und Definitionen (Funktionskörper). C Sprache verwendet standardmäßig Werte, um Parameter zu übergeben, aber externe Variablen können auch mit dem Adresspass geändert werden. Funktionen können oder haben keinen Rückgabewert, und der Rückgabewerttyp muss mit der Deklaration übereinstimmen. Die Benennung von Funktionen sollte klar und leicht zu verstehen sein und mit Kamel oder Unterstrich die Nomenklatur. Befolgen Sie das Prinzip der einzelnen Verantwortung und behalten Sie die Funktion ein, um die Wartbarkeit und die Lesbarkeit zu verbessern.

H5. Der Hauptunterschied zwischen Mini -Programmen und App ist: Technische Architektur: H5 basiert auf Web -Technologie, und Mini -Programme und Apps sind unabhängige Anwendungen. Erfahrung und Funktionen: H5 ist leicht und einfach zu bedienen, mit begrenzten Funktionen; Mini -Programme sind leicht und haben eine gute Interaktivität. Apps sind leistungsstark und haben reibungslose Erfahrung. Kompatibilität: H5 ist plattformübergreifend, Applets und Apps werden von der Plattform eingeschränkt. Entwicklungskosten: H5 verfügt über niedrige Entwicklungskosten, mittlere Mini -Programme und die höchste App. Anwendbare Szenarien: H5 eignet sich für Informationsanzeigen, Applets eignen sich für leichte Anwendungen und Apps eignen sich für komplexe Funktionen.

C -Sprachfunktionen sind wiederverwendbare Codeblöcke. Sie erhalten Input, führen Vorgänge und Rückgabergebnisse aus, die modular die Wiederverwendbarkeit verbessert und die Komplexität verringert. Der interne Mechanismus der Funktion umfasst Parameterübergabe-, Funktionsausführung und Rückgabeteile. Der gesamte Prozess beinhaltet eine Optimierung wie die Funktion inline. Eine gute Funktion wird nach dem Prinzip der einzigen Verantwortung, der geringen Anzahl von Parametern, den Benennungsspezifikationen und der Fehlerbehandlung geschrieben. Zeiger in Kombination mit Funktionen können leistungsstärkere Funktionen erzielen, z. B. die Änderung der externen Variablenwerte. Funktionszeiger übergeben Funktionen als Parameter oder speichern Adressen und werden verwendet, um dynamische Aufrufe zu Funktionen zu implementieren. Das Verständnis von Funktionsmerkmalen und Techniken ist der Schlüssel zum Schreiben effizienter, wartbarer und leicht verständlicher C -Programme.

PDF mit Passwort geschützt in Photoshop exportieren: Öffnen Sie die Bilddatei. Klicken Sie auf "Datei" & gt; "Export" & gt; "Exportieren Sie als PDF". Stellen Sie die Option "Sicherheit" fest und geben Sie dasselbe Passwort zweimal ein. Klicken Sie auf "Exportieren", um eine PDF -Datei zu generieren.

Die Notwendigkeit der Registrierung von Vuerouter in der Datei index.js -Datei im Ordner Router Bei der Entwicklung von VUE -Anwendungen stoßen Sie häufig Probleme mit der Routing -Konfiguration. Besonders...

Obwohl C und C# Ähnlichkeiten haben, sind sie völlig unterschiedlich: C ist eine prozessorientierte, manuelle Speicherverwaltung und plattformabhängige Sprache, die für die Systemprogrammierung verwendet wird. C# ist eine objektorientierte, Müllsammlung und plattformunabhängige Sprache, die für Desktop-, Webanwendungs- und Spielentwicklung verwendet wird.

Detaillierte Erläuterung der XPath -Suchmethode unter DOM -Knoten in JavaScript, wir müssen häufig bestimmte Knoten aus dem DOM -Baum basierend auf XPath -Ausdrücken finden. Wenn Sie ...

Eingehende Diskussion der Unterschiede in der Konsole.log-Ausgabe in diesem Artikel wird die Gründe analysieren, warum die Ausgabeergebnisse der Konsolenfunktion in einem Code-Stück unterschiedlich sind. Code -Snippets beinhalten URL -Parameterauflösung ...
