Java Programming Thoughts (vierte Ausgabe) Studiennotizen ---- 11.4 Containerdruck
import static java.lang.System.out; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.Map; import java.util.TreeMap; import java.util.TreeSet; public class ContainerFramework { static Collection fill(Collection<String> collection) { collection.add("rat"); collection.add("cat"); collection.add("dog"); collection.add("dog"); return collection; } static Map fill(Map<String, String> map) { map.put("rat", "Fuzzy"); map.put("cat", "Rags"); map.put("dog", "Bosco"); map.put("dog", "Spot"); return map; } public static void main(String[] args) { out.println(fill(new ArrayList<String>())); out.println(fill(new LinkedList<String>())); out.println(fill(new HashSet<String>())); out.println(fill(new TreeSet<String>())); out.println(fill(new LinkedHashSet<String>())); out.println(fill(new HashMap<String, String>())); out.println(fill(new TreeMap<String, String>())); out.println(fill(new LinkedHashMap<String, String>())); } }
[rat, cat, dog, dog] [rat, cat, dog, dog] [cat, dog, rat] [cat, dog, rat] [rat, cat, dog] {cat=Rags, dog=Spot, rat=Fuzzy} {cat=Rags, dog=Spot, rat=Fuzzy} {rat=Fuzzy, cat=Rags, dog=Spot}
Nachdem Sie den Code ausgeführt haben, können Sie anhand der Ergebnisse dieser Sammlung sehen Der gedruckte Inhalt wird in eckige Klammern [] eingeschlossen, und jedes Element wird durch ein Komma getrennt; der gedruckte Inhalt der Karte wird in geschweifte Klammern {} eingeschlossen, und der Schlüssel und der Wert werden mit einem Gleichheitszeichen als ein Element (Schlüssel) verbunden = Wert), jedes Element wird durch Kommas getrennt.
Java-Containerklassen umfassen zwei Typen: Sammlungsklassen mit der Collection-Schnittstelle als Wurzel und assoziative Array-Klassen mit Map als Wurzel.
Die Sammlungsschnittstelle hat drei wichtige Untertypen: Liste (Liste), Set(set),Queue(queue)
List hat zwei wichtige Implementierungen, nämlich ArrayList und LinkedList
Alle Implementierungsklassen der List-Schnittstelle Beide stellen dies sicher Seine Elemente können in der Reihenfolge des Einfügens gespeichert werden, sodass List eine geordnete Sammlung ist. Der Vorteil von ArrayList besteht darin, dass es effizient und zufällig auf seine Elemente zugreifen kann. Der Nachteil besteht jedoch darin, dass die Leistung beim Einfügen und Entfernen von Elementen an bestimmten Stellen relativ langsam ist. LinkedList ist im Hinblick auf den Direktzugriff langsamer, aber effizienter beim Einfügen und Entfernen von Elementen an bestimmten Stellen.
2. Set verfügt über drei wichtige Implementierungen, nämlich HashSet, TreeSet und LinkedHashSet
Alle Implementierungsklassen der Set-Schnittstelle stellen sicher, dass ihre Elemente nicht vorhanden sind wiederholt. HashSet verwendet den Hash-Algorithmus, um die Elemente in der Menge zu speichern, aber die Effizienz beim Abrufen von Elementen ist am schnellsten. TreeSet ist eine geordnete Menge, die die Elemente in der Menge in aufsteigender Reihenfolge der Vergleichsergebnisse speichert. LinkedHashSet ist ebenfalls eine geordnete Sammlung. Es speichert Objekte in der Reihenfolge, in der Elemente eingefügt werden, und verfügt gleichzeitig über die Abfragegeschwindigkeit von HashSet.
3. Warteschlange
Die Warteschlange ermöglicht das Einfügen von Daten an einem Ende des Containers und das Entfernen von Daten am anderen Ende.
Die Map-Schnittstelle verfügt über drei wichtige Untertypen: HashMap, TreeMap und LinkedHashMap. Werte können über Schlüssel gefunden werden. Es handelt sich um einen Container von „Schlüssel-Wert“-Paaren.
HashMap ist ungeordnet , mit der schnellsten Suchgeschwindigkeit.
TreeMap ist in der Reihenfolge und wird in aufsteigender Reihenfolge der Vergleichsschlüsselergebnisse gespeichert.
LinkedHashMap ist in der Reihenfolge der eingefügten Elemente gespeichert, wobei auch die Abfragegeschwindigkeit beibehalten wird von HashMap.