Heim Datenbank Redis Was sind die Unterschiede zwischen Set und List in Redis?

Was sind die Unterschiede zwischen Set und List in Redis?

Jun 29, 2019 pm 05:38 PM

Was sind die Unterschiede zwischen Set und List in Redis?

Der Unterschied zwischen Liste und Menge:

1. Sowohl die List- als auch die Set-Schnittstelle erben von der Collection-Schnittstelle.

2. Der größte Unterschied besteht darin, dass die Liste wiederholt werden kann. Und Set kann nicht wiederholt werden. (Hinweis: Obwohl Elemente nicht in die richtige Reihenfolge gebracht werden, wird die Position des Elements in der Menge durch den 3. HashCode des Elements bestimmt und seine Position ist tatsächlich festgelegt.)

3 Die List-Schnittstelle verfügt über drei Implementierungsklassen : LinkedList-, ArrayList-, Vector- und Set-Schnittstellen verfügen über zwei Implementierungsklassen: HashSet (die unterste Ebene wird durch HashMap implementiert), LinkedHashSet

4. List eignet sich zum häufigen Anhängen von Daten, Einfügen und Löschen von Daten. Allerdings ist die Effizienz des Zufallszahlenabrufs relativ gering.

5. Das Set eignet sich zum häufigen zufälligen Speichern, Einfügen und Löschen. Allerdings ist der Wirkungsgrad beim Traversieren relativ gering.

Set akzeptiert jedes Objekt nur einmal und verwendet seine eigene interne Sortiermethode (normalerweise interessiert Sie nur, ob ein Element zum Set gehört, nicht seine Reihenfolge – andernfalls sollten Sie eine Liste verwenden). Map speichert auch eine Kopie jedes Elements, diese basiert jedoch auf dem „Schlüssel“. Map verfügt auch über eine integrierte Sortierung, sodass die Reihenfolge, in der Elemente hinzugefügt werden, egal ist. Wenn Ihnen die Reihenfolge beim Hinzufügen von Elementen wichtig ist, sollten Sie LinkedHashSet oder LinkedHashMap verwenden.

Zusammenfassung: Liste hat Reihenfolge, Duplizierung und keine Sortierung, Set hat keine Duplizierung und Sortierung und der Schlüssel der Karte ist der gleiche Vermögenswert. Wenn Sie Elemente in derselben Reihenfolge wie List einfügen möchten, verwenden Sie bitte LinkedHashSet oder LinkedHashMap.

Funktionsmethoden von Listen

Es gibt tatsächlich zwei Arten von Listen: eine ist die grundlegende ArrayList, deren Vorteil im wahlfreien Zugriff auf Elemente liegt, und die andere ist die leistungsfähigere LinkedList Es ist nicht für den schnellen Direktzugriff konzipiert, verfügt aber über einen allgemeineren Methodensatz.

Liste: Reihenfolge ist das wichtigste Merkmal von Liste: Sie stellt sicher, dass eine bestimmte Reihenfolge der Elemente beibehalten wird. List fügt der Collection viele Methoden hinzu und ermöglicht das Einfügen und Entfernen von Elementen aus der Mitte der Liste (dies wird nur für LinkedList empfohlen). Eine Liste kann einen ListIterator generieren, der zum Durchlaufen der Liste in zwei Richtungen verwendet werden kann Es können auch Elemente aus der Mitte der Liste eingefügt und verschoben werden.

ArrayList: Liste implementiert durch Array. Ermöglicht schnellen Direktzugriff auf Elemente, fügt Elemente jedoch sehr langsam aus der Mitte der Liste ein und entfernt sie. ListIterator sollte nur zum Durchlaufen der ArrayList von hinten nach vorne verwendet werden, nicht zum Einfügen und Entfernen von Elementen. Denn das ist viel teurer als LinkedList.

LinkedList: Der sequentielle Zugriff ist optimiert und der Aufwand für das Einfügen und Löschen in der Mitte der Liste ist nicht groß. Der wahlfreie Zugriff ist relativ langsam. (Verwenden Sie stattdessen ArrayList.) Verfügt außerdem über die folgenden Methoden: addFirst(), addLast(), getFirst(), getLast(), RemoveFirst() und RemoveLast(), die (in keiner Schnittstelle oder Basisklasse definiert) LinkedList erstellen können als Stack, Queue und Deque verwendet werden.

Zum Beispiel:

Verwenden von ArrayList und Iterator

                List<Integer> list = new ArrayList<>();
		for (int i = 0; i < 10; i++) {
			list.add(i);
		}
		Iterator<Integer> iterator = list.iterator();
		while (iterator.hasNext()) {
			int i = iterator.next();
			System.out.println("iterator==" + i);
		}
		for(Integer i: list) {
			System.out.println("i=="+ i);
		}
                ListIterator<Integer> listIterator = list.listIterator();
		while (listIterator.hasNext()) {
			int  j = listIterator.next();
			System.err.println("listIterator==" + j);
		}
Nach dem Login kopieren

Funktionsmethoden von Set

Set: Jedes in Set gespeicherte Element muss eindeutig sein, da dies bei Set nicht der Fall ist Speichern Sie doppelte Elemente. Dem Set hinzugefügte Elemente müssen die Methode equal() definieren, um die Einzigartigkeit des Objekts sicherzustellen. Set und Collection haben genau die gleiche Schnittstelle. Die Set-Schnittstelle garantiert nicht, dass die Reihenfolge der Elemente beibehalten wird.

HashSet: Set für die schnelle Suche. In HashSet gespeicherte Objekte müssen hashCode() definieren.

TreeSet: Zum Speichern der Reihenfolge festlegen. Die unterste Ebene ist eine Baumstruktur. Verwenden Sie es, um eine geordnete Sequenz aus einem Set zu extrahieren.

LinkedHashSet: Hat die Abfragegeschwindigkeit von HashSet und verwendet intern eine verknüpfte Liste, um die Reihenfolge der Elemente (die Einfügungsreihenfolge) beizubehalten. Wenn Sie also einen Iterator zum Durchlaufen der Menge verwenden, werden die Ergebnisse in der Reihenfolge angezeigt, in der die Elemente eingefügt wurden.

Weitere Informationen zu Redis finden Sie in der Spalte Tutorial zur Redis-Nutzung!

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen Set und List in Redis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie wähle ich einen Shard -Schlüssel in Redis -Cluster aus? Wie wähle ich einen Shard -Schlüssel in Redis -Cluster aus? Mar 17, 2025 pm 06:55 PM

In dem Artikel wird die Auswahl von Shard -Schlüssel im Redis -Cluster erläutert und ihre Auswirkungen auf Leistung, Skalierbarkeit und Datenverteilung betont. Zu den wichtigsten Problemen gehört die Gewährleistung der sogar Datenverteilung, die Ausrichtung auf den Zugriffsmustern und die Vermeidung häufiger Fehler L.

Wie implementiere ich Authentifizierung und Autorisierung in Redis? Wie implementiere ich Authentifizierung und Autorisierung in Redis? Mar 17, 2025 pm 06:57 PM

In dem Artikel wird die Implementierung der Authentifizierung und Autorisierung in Redis erläutert, wobei der Schwerpunkt auf der Aktivierung der Authentifizierung, der Verwendung von ACLs und den Best Practices zur Sicherung von Redis wird. Es deckt auch die Verwaltung von Benutzerberechtigungen und Tools ab, um die Redis -Sicherheit zu verbessern.

Wie verwende ich Redis für Jobwarteschlangen und Hintergrundverarbeitung? Wie verwende ich Redis für Jobwarteschlangen und Hintergrundverarbeitung? Mar 17, 2025 pm 06:51 PM

In dem Artikel wird die Verwendung von REDIS für Jobwarteschlangen und Hintergrundverarbeitung, Einzelheiten zur Einrichtung, Jobdefinition und Ausführung erläutert. Es deckt Best Practices wie Atomoperationen und Jobpriorisierung ab und erklärt, wie Redis die Verarbeitungseffizienz verbessert.

Wie implementiere ich Cache -Invalidierungsstrategien in Redis? Wie implementiere ich Cache -Invalidierungsstrategien in Redis? Mar 17, 2025 pm 06:46 PM

In dem Artikel werden Strategien zur Implementierung und Verwaltung von Cache-Invalidierung in REDIS erörtert, einschließlich zeitbasierter Ablauf, ereignisgesteuerter Methoden und Versioning. Es deckt auch Best Practices für Cache -Ablauf und Tools zur Überwachung und Automatik ab

Wie überwachte ich die Leistung eines Redis -Clusters? Wie überwachte ich die Leistung eines Redis -Clusters? Mar 17, 2025 pm 06:56 PM

In Artikel werden die Leistung und Gesundheit von Redis-Cluster mithilfe von Tools wie Redis CLI, Redis Insight und Drittanbieterlösungen wie Datadog und Prometheus überwacht.

Wie benutze ich Redis für Pub/Sub Messaging? Wie benutze ich Redis für Pub/Sub Messaging? Mar 17, 2025 pm 06:48 PM

In dem Artikel wird erläutert, wie Redis für Pub/Sub -Messaging, Abdeckung von Setup, Best Practices, Sicherstellung der Nachrichtenzuverlässigkeit und Überwachungsleistung.

Wie verwende ich Redis für das Sitzungsmanagement in Webanwendungen? Wie verwende ich Redis für das Sitzungsmanagement in Webanwendungen? Mar 17, 2025 pm 06:47 PM

In dem Artikel wird die Verwendung von Redis für das Sitzungsmanagement in Webanwendungen, die Einrichtung, Vorteile wie Skalierbarkeit und Leistung sowie Sicherheitsmaßnahmen erläutert.

Wie sichere ich Redis gegen gemeinsame Schwachstellen? Wie sichere ich Redis gegen gemeinsame Schwachstellen? Mar 17, 2025 pm 06:57 PM

In Artikel wird die Sicherung von Redis gegen Schwachstellen erörtert, die sich auf starke Kennwörter, Netzwerkbindung, Befehlsbehinderung, Authentifizierung, Verschlüsselung, Aktualisierungen und Überwachung konzentrieren.

See all articles