Willkommen zurück, Scott Stanley hier. In diesen Lektionen werden wir einen Blick darauf werfen im Collections-Framework einige statische Hilfsfunktionen die wir verwenden können, um mit diesen Sammlungen zu arbeiten, und dann schauen wir uns natürlich an und benutzerdefinierte Sortieralgorithmen, die wir angeben können. In dieser Lektion zeige ich es dir den Sammlungsrahmen. Wir sehen, dass es aus mehreren interessanten Typen besteht. Das erste, worauf ich Ihre Aufmerksamkeit lenken möchte, ist, wir sehen die orangefarbenen Kästchen hier sind die Schnittstellentypen, und die blauen Kästchen sind die Klassentypen. Nur zur Auffrischung spezifizieren die Schnittstellen das Was, und die Klassen, die Implementierungen dieser Schnittstellen, sie bestimmen, wie, wie etwas funktioniert. Also können wir sehen ganz oben in der Hierarchie des Sammlungsrahmens, es gibt eine Sammlungsschnittstelle, das ist das generischste von allen. Und dann sehen Sie einige spezifischere Geben Sie Schnittstellen, Listen, Cues, Sets ein. Es gibt Stapel, Karten, Bäume, so ziemlich alles, was Sie könnten Hope for ist ein Teil der Framework-Hierarchie dieser Sammlung. Werfen wir einen Blick hier auf den Sammlungstest. Richtig, los geht's. Das erste Testszenario, das wir sehen Wir erstellen eine neue Array-Liste. Wir speichern es als generischen Typ, allgemein als Listenschnittstellentyp bezeichnet. Und in diesem Fall verwenden wir die Generika. Dies wird also eine Liste des Zahlentyps sein. Und wir werden die ersten 50 hinzufügen, gut bis zu 50 Primzahlen. Also zwei, drei, fünf, sieben, 11 bis 47. Und dann beweisen wir einfach, dass es eine Größe von 15 hat, Das ist die Anzahl der Elemente, die wir hinzugefügt haben. Das erforderte also ziemlich viel Tipparbeit, wie Sie sehen können. Sie haben uns ein paar Helfer-Shortcut-Möglichkeiten gegeben dies zu tun, das uns das Leben ein wenig leichter macht. Die erste davon ist, anstatt eine neue Array-Liste zu erstellen so wie ich es hier gemacht habe und es mit diesen Primzahlen packe, Wir werden den Shortcut-Ansatz wählen und einfach verwenden die Arrays als Liste und geben Sie die 15 Nummern an. Und in jüngerer Zeit haben sie einige neue hinzugefügt Verhalten für diese Schnittstellentypen, ihre Standardmethoden auf den Schnittstellen. Wir haben also eine Liste von, und ebenso, wir können die ersten 50 Primzahlen spezifizieren. Nun ist eine Liste eine geordnete Liste, wodurch wir ein Element an einem bestimmten Index hinzufügen können. Also, wenn Sie hier sehen, haben wir eins, zwei, vier, fünf und sechs, und diese Elemente sind nummeriert null, eins, zwei, drei, vier, wenn wir die Zahl drei einfügen wollten zwischen zwei und vier würden wir sagen, wir würden möchte am Index zwei die Zahl drei hinzufügen. Und was es tut, ist, dass es alles nach rechts schiebt das war an dieser Stelle und jenseits dieser Stelle. Nachdem wir die Zahl Drei an zweiter Stelle hinzugefügt haben, Null, eins, zwei, dann die Liste wird eins, zwei, drei, vier, fünf, sechs sein. Wir werfen einen kurzen Blick auf einen kleinen Weg Duplikate aus einer Liste zu quetschen. Eine Liste erlaubt also Duplikate. Tatsächlich können Sie sehen, dass wir die Nummer zwei haben mehrfach vervielfältigt, sowie sechs und sieben. Und die Größe dieser Liste ist 10. Wenn wir die Duplikate herausquetschen wollen, Wir können ein neues Hash-Set erstellen. Sets erlauben keine Duplikate. Am Ende reduziert das also die Liste auf eins, zwei, sechs, sieben, acht. Hier ist ein Beispiel für eine Karte. Wir haben eine Karte von Zahlen zu Strings, und die Nummer hier, vielleicht eine Mitarbeiternummer. Mitarbeiter Nummer eins ist also Scott. Nummer zwei ist Jennifer. Nummer drei ist Tyler. Und dann können wir überprüfen, ob wir auf der Karte nachschlagen, diese Sammlung, für Schlüssel Nummer drei, ist eher Tyler. Vor dem neuen Verhalten setzen, wenn nicht vorhanden, wenn wir ein neues Schlüssel-Wert-Paar in eine Karte einfügen wollten, aber wir wollten sichergehen, dass wir nichts anstoßen die sich möglicherweise bereits an diesem Ort befunden haben, wir mussten das tun. Wenn ich die Schlüsselnummer drei in dieser Karte nachschlage, und so etwas gibt es nicht, dann werde ich es tun Setzen Sie die Nummer drei Paarung mit der Zeichenfolge Peter. Und das war irgendwie klugey. Der neue Weg, dies jetzt zu tun, ist, dass wir einfach put sagen können, wenn nicht vorhanden. Bei Abwesenheit setzen. Und das letzte, was wir uns hier ansehen werden ist der Begriff einer schwachen Hash-Map. Eine schwache Hash-Map ist sehr nützlich zum Halten von Caches zum Beispiel. So funktioniert ein schwacher Hash-Kartensammlungstyp. Sobald keine Verweise mehr auf Elemente vorhanden sind innerhalb der Karte, dann die Schlüssel-Wert-Paare in der schwachen Hash-Map verschwindet. Sie löschen sich automatisch in einem Garbage-Collection-Intervall. Wenn wir also Chris und Eddie hier erschaffen, und lege sie in diese Sammlung, diese Karte, was zufällig eine schwache Hash-Map-Implementierung ist, Wir haben diese beiden Objekte in die Karte eingefügt, und dann können wir die Größe der Karte als zwei behaupten. Sobald Chris auf null gesetzt wird, Chris war eine der wichtigsten Wertpaarungen, die wir gesetzt haben in dieser schwachen Hash-Map, sobald Chris auf null gesetzt wird dann gibt es keine Referenzen mehr zu diesem Schlüssel-Wert-Paar, und so bald wenn eine Garbage Collection stattfindet, Ich habe es hierher gezwungen, nur um das Problem zu beweisen, sobald wir eine Garbage Collection betreiben, und dann gehen wir und fragen die Hash-Map nach ihrer Größe, seine Größe ist nicht mehr zwei, seine Größe ist jetzt eins, weil der Verweis auf ein Schlüsselwertpaar gelöscht wird reduziert automatisch die Größe dieser schwachen Hash-Map. In der nächsten Lektion werden wir einen Blick darauf werfen bei einigen statischen Funktionen, Hilfsmethoden, die wir nutzen können, um mehr Vorteile zu nutzen dieser Sammlungshierarchie. Danke fürs Zuschauen und bleibt dran.