[Java] Struktur der Auflistungsklasse festlegen (zu HashSet und TreeSet)

Programmierstudientagebuch

  1. Oktober 2020 Ich habe TreeSet in Java verwendet, aber ich habe den Unterschied zu HashSet nicht verstanden, also nehme ich ihn auf.

Was ist eine Sammlungsklasse?

Eine Sammlung ist ein Objekt, das Elemente sammelt. Sammlungsklassen werden grob in drei Typen unterteilt: Liste, Karte und Satz. Jedes ist in Klassen mit unterschiedlichen Eigenschaften unterteilt.

Es gibt zwei Arten von Listenstrukturen: ArrayList und LinkedList. Die Listenstruktur ist eine Struktur, in der Elemente geordnet und verwaltet werden. Da die Elemente in der Reihenfolge der Indexnummern angeordnet sind, können Elemente durch Angabe der Nummern erfasst, eingefügt, aktualisiert, geändert usw. werden.

Es gibt zwei Arten von Kartenstrukturen: HashMap und TreeMap. Die Kartenstruktur ist eine Datenstruktur, die eine Reihe von Schlüsseln und Werten als ein Element verwaltet. Da die Elemente als Schlüssel verwaltet werden, können Sie den Schlüssel angeben und den Wert nicht aktualisieren oder löschen. Das diesmal behandelte HashSet und TreeSet haben eine Set-Struktur, wie der Name schon sagt, und sind unten zusammengefasst.

Was ist eine Set Structure Collection-Klasse?

Es gibt zwei Arten von Set-Strukturen, HashSet und TreeSet, Datenstrukturen, die Elemente verwalten, ohne sie zu ordnen. Da es keine Reihenfolge wie List und Schlüsselverwaltung wie Map gibt, können Sie die Elemente mit Iterator abrufen oder für Anweisungen erweitern. Elemente können nicht dupliziert werden </ b> (Überschreiben, wenn derselbe Schlüssel gesetzt ist.) Die Unterschiede zwischen HashMap und TreeSet können wie folgt zusammengefasst werden.

--HashMap spielt keine Rolle in der Reihenfolge der Erfassung --TreeSet kann Elemente in sortierter Reihenfolge abrufen --HashMap kann nicht mit null umgehen --TreeSet kann null verarbeiten

HashMap garantiert nicht die Reihenfolge der Elementerfassung, aber TreeSet wird automatisch sortiert und verwaltet, sodass Elemente in der sortierten Reihenfolge erfasst werden können. HashMap kann auch null für Elemente verwenden, TreeSet kann jedoch null verwenden.

Zusammenfassung

Nicht nur die Set-Struktur, sondern auch die Funktionen der Auflistungsklasse lassen sich leicht in einer Tabelle zusammenfassen.

ArrayList LinkedList HashMap TreeMap HashSet TreeSet
Schnittstelle List List Map Map Set set
Doppelte Elemente × × × ×
Nullelement × × ×
Automatische Sortierung × × ×

Obwohl oben nicht erwähnt, hat ArrayList die Eigenschaft, andere Teile schnell zu erhalten, aber langsam einzufügen und zu löschen, und LinkedList zeichnet sich dadurch aus, dass Elemente schnell eingefügt und gelöscht werden, aber langsam abgerufen werden.

Verweise

TreeSet-Klasse Vergleich von Sammlungsklassen

Recommended Posts

[Java] Struktur der Auflistungsklasse festlegen (zu HashSet und TreeSet)
[Java] Komparator der Collection-Klasse
Über Biocontainer fastqc und Java
Mechanismus und Merkmale der in Java häufig verwendeten Collection-Implementierungsklasse
[Java] Inhalt der Collection-Schnittstelle und der List-Schnittstelle
Über die Java-Klasse
Informationen zu next () und nextLine () der Scannerklasse
Abgelaufene Java-Sammlung
Über die Klassenteilung (Java)
Informationen zur Java StringBuilder-Klasse
[Java] Über Singleton Class
Informationen zur Java String-Klasse
Java-Programmierung (Klassenstruktur)
Über die abstrakte Klasse von Java
[Java] Über Objects.equals () und Überprüfung des String-Vergleichs (== und gleich)
Verwendung von Abstract Class und Interface in Java richtig
[Java] Umgang mit Zeichenketten (String-Klasse und StringBuilder-Klasse)
Über Java-Instanzen
Informationen zu Java Class Loader-Typen
Definition und Instanziierung von Java-Klassen
[Java] Über String und StringBuilder
Empfehlung der Set-Operation durch Java (und Verständnis von Equals und HashCode)
Zusammenfassung der Java Math Klasse
Java-Klasse Variable Klassenmethode
Vor- und Nachteile von Java
Über Java-Paket und Import
[Java] Ich habe über die Vorzüge und Verwendungen von "Schnittstelle" nachgedacht.
Über verschiedene Eindrücke von "Testen von Java Microservices" und Consumer Driven Contract
Gibt eine Liste von CDK-Deskriptoren, Klassennamen und ob es sich um 3D-Strukturdeskriptoren handelt.
[Java] Einführungsstruktur Klassendefinition Beziehung zwischen Klasse und Instanz Methodendefinitionsformat
Behandeln Sie die Geschäftslogik für eine Reihe von Entitäten in einer Java-Klasse
Sammlung ausgewählter Programmieraufgaben zum Erstellen und Erinnern (Java-Grundlagen)
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
Verschiedene Methoden der Java String Klasse
Über Lambda, Stream, LocalDate von Java8
[Java-Anfänger] Über Abstraktion und Schnittstelle
StringBuffer- und StringBuilder-Klasse in Java
Informationen zu removeAll und RetainAll von ArrayList
Informationen zu primitiven Java-Typen und Referenztypen
Dies und das über Base64 (Java)
Grundstruktur des Java-Quellcodes
Eine Sammlung von Phrasen, die das "unterschiedliche Gefühl" von Java und JavaScript beeindruckt
Über die Klassifizierung und das Konzept von Immutable / Mutable / Const / Variable von Java und Kotlin.
Java Anfänger Escape Boot Camp Teil 1 Struktur und Schreiben der Java-Klasse
Zeigen Sie den japanischen Kalender und Tag mit der Java8-Standardklasse an
Bedeutung der aus der Java Collection gelernten Schnittstelle
Nach 3 Monaten Java- und Frühlingstraining
Informationen zur Funktionsweise von next () und nextLine ()
[Java] Unterschiede zwischen Instanzvariablen und Klassenvariablen
[Über JDBC, das Java und SQL verbindet]
[Java / Swift] Vergleich von Java-Schnittstelle und Swift-Protokoll
[Java] Vergleich von Sammlungs- und StringBuilder-Operationsmethoden
[Java-Anfänger] Informationen zur Initialisierung eines mehrdimensionalen Arrays
[Grundkenntnisse in Java] Informationen zur Typkonvertierung
Richtige Verwendung der Schnittstelle und der abstrakten Klasse
Java-Programmierung (statische Klausel und "Klassenvariablen")
Java-Kalenderklasse (Zeiteinstellung, Vergleich, Format)
Zusammenfassung von Java Math.random und Import (Kalender)