Der Unterschied zwischen Set- und Listenschnittstellen in der Java Collection
Im Wesentlichen sind sowohl List als auch Set Schnittstellen und erben die Collection-Schnittstelle. Die ArrayList und HashSet, die wir häufig verwenden, erben die List- bzw. Set-Schnittstellen. Aufgrund der Verwendung von Generika kann der tatsächliche Typ für die Verwendung in tatsächlichen Anwendungen angegeben werden. Normalerweise verwenden wir sie zum Speichern von Objekten. Sie alle bieten Schnittstellen zum Einfügen, Löschen und Suchen und unterstützen die Verwendung von Iterator. Was ist also der Unterschied zwischen List und Set und wie sollten sie bei der Verwendung unterschieden werden?
Der Unterschied zwischen List und Set
(1) Ein sehr wichtiger Unterschied zwischen List und Set besteht darin, ob doppelte Elemente vorhanden sein dürfen im Set Doppelte Elemente sind nicht zulässig und werden ersetzt, auch wenn das gleiche Element eingefügt wird. Ich habe überprüft, dass die gleichen Elemente in ArrayList bzw. HashSet eingefügt wurden:
HashSet<String> hset = new HashSet<String>(); ArrayList<String> arrlst = new ArrayList<String>(); hset.add("hello"); hset.add("hello"); arrlst.add("hello"); arrlst.add("hello"); System.out.println("hset size: "+hset.size()+" toString: "+hset.toString()); System.out.println("arrlst size: "+arrlst.size()+" toString: "+arrlst.toString());
Laufergebnisse:
PS: Wenn Sie sich den JDK-Quellcode ansehen, Sie sehen die Implementierung von HashSet. Dies erfolgt über HashMap.
Empfehlung für Java-Lernvideos: Erste Schritte mit Java
(2) Ein weiterer sehr wichtiger Unterschied zwischen List und Set hängt mit der Reihenfolge zusammen, in der Elemente gespeichert werden. List ist eine geordnete Sammlung, während Set eine ungeordnete Sammlung ist. Die Liste behält die Reihenfolge bei, in der Elemente eingefügt werden, d. h. der Index der zuvor eingefügten Elemente ist kleiner als der Index der später eingefügten Elemente. Set behält die Einfügereihenfolge nicht bei. Überprüfen wir auch:
HashSet<String> hset = new HashSet<String>(); ArrayList<String> arrlst = new ArrayList<String>(); hset.add("1"); hset.add("3"); hset.add("2"); arrlst.add("1"); arrlst.add("3"); arrlst.add("2"); System.out.println("hset size: "+hset.size()+" toString: "+hset.toString()); System.out.println("arrlst size: "+arrlst.size()+" toString: "+arrlst.toString());
Laufergebnisse:
PS: ArrayList verwendet Objektarrays zum Speichern von Objekten und fügt jedes Mal neue ein Das Objekt wird in size eingefügt; wie bereits erwähnt, wird das gespeicherte Objekt als Schlüssel von HashMap verwendet. Natürlich kann SortedSet (das die Set-Schnittstelle erbt) Elemente in einer bestimmten Sortierweise speichern.
(3) Auf die Liste kann über Indizes zugegriffen werden, auf Set jedoch nicht.
Zu den allgemeinen Implementierungsklassen der List-Schnittstelle gehören ArrayList, Vector und LinkedList, während zu den allgemeinen Implementierungsklassen der Set-Schnittstelle HashSet, TreeSet und LinkedHashSet gehören.
Weitere Artikelempfehlungen zum Thema Java: Java-Einführungs-Tutorial
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Set- und Listenschnittstellen in der Java Collection. 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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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



In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

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.

Char und Unsigned char sind zwei Datentypen, die Charakterdaten speichern. Der Hauptunterschied ist der Weg, um mit negativen und positiven Zahlen umzugehen: Wertebereich: char signiert (-128 bis 127) und nicht signiertes char nicht signiert (0 bis 255). Negative Zahlenverarbeitung: char kann negative Zahlen speichern, unsigned char kann nicht. Bitmodus: char Das höchste Bit repräsentiert das Symbol, nicht signiertes char unsigned Bit. Arithmetische Operationen: SHOR und unsigned char sind signierte und nicht signierte Typen, und ihre arithmetischen Operationen sind unterschiedlich. Kompatibilität: SHAR und nicht signiertes Zeichen

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.

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.

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 ...

Der Hauptunterschied zwischen einer abstrakten Klasse und einer Schnittstelle besteht darin, dass eine abstrakte Klasse die Implementierung einer Methode enthalten kann, während eine Schnittstelle nur die Signatur einer Methode definieren kann. 1. Die abstrakte Klasse wird unter Verwendung eines abstrakten Schlüsselworts definiert, das abstrakte und konkrete Methoden enthalten kann, die für die Bereitstellung von Standardimplementierungen und zur gemeinsamen Code geeignet sind. 2. Die Schnittstelle wird mit dem Schlüsselwort der Schnittstelle definiert, das nur Methodensignaturen enthält, die zur Definition von Verhaltensnormen und zur Mehrfachvererbung geeignet sind.
