Kann einer bitte führe mich in die Tiefe schauen über die verwendeten Datenstrukturen und wie wird es umgesetzt in die Liste Gesetzt und Karten Util Collection Seite.
In Interviews die meisten der Fragen wird auf die Algorithmen, aber nie sah ich überall die details der Implementierung, Kann einer bitte die information weitergeben.
- Verwenden Sie die Quelle, Luke!
Lernen, wie Java implementiert Sammlungen, den endgültigen Ort zu gehen, die Quellcodes frei zur Verfügung stehen. In der Regel, Listen implementiert sind, sind entweder als array (ArrayList) oder verknüpfte Listen (LinkedList); die Sätze sind entweder hashtables (HashSet) oder Bäume (TreeSet); und Karten sind hashtables (HashMap).
Algorithmen für die Manipulation von arrays, verknüpfte Listen, Hashtabellen und binäre oder n-ary trees (hinzufügen, entfernen, suchen, Sortieren) sind Komplex genug ist, in sich selbst, die einen gesamten Kurs ist erforderlich, um Sie zu decken alle. Jemand zu tun, Ihre eigenen Programm-Entwurf wird in der Regel benötigt, um zu verstehen, diese algorithmen und deren performance-Nachteile von Herzen. Es gibt keinen Ersatz für lehrbuch Studium und/oder Praxis.
Den Quellcode der API verfügbar ist, erhalten Sie eine JDK und öffnen Sie die src.zip Datei aus dem Installationsordner.
ArrayList: array
LinkedList: doppelt verkettete Liste (Entry-Objekte)
HashMap: array mit Entry-Objekten jeder Eintrag auf einzeln verlinkte Liste
HashSet: intern verwendet, HashMap, speichert Daten als Schlüssel und dummy-Objekt (der Klasse Object) als Wert in die map.
TreeMap: Rot-Schwarz-Baum implementation von Entry-Objekten.
TreeSet: intern verwendet TreeMap. Key-Daten und dummy-Objekt als Wert.
*Eintrag: ist eine interne Klasse, die in diesen Sammlungen und hat in der Regel Schlüssel, Wert, Referenzen für weitere Entry-Objekte usw.
Können Sie immer öffnen Sie die Quelldateien, es ist alles da, allerdings würde ich nicht empfehlen, da es in der Regel sind Sie sehr schwer zu verstehen. Stattdessen würde ich versuchen, das finden der zugrunde liegenden Daten-Struktur, und suchen Sie es. Wikipedia enthält viele Informationen, die Sie wissen wollen über diese Themen, und google enthält die absolute Ruhe.
Liste ist nur eine dynamische array,
Set ist ein... set,
Und Karten sind in der Regel hash-Tabellen sortiert nach den key-hash, gespeichert und als Schlüssel-Wert-paar.
Wenn du gehst, Tauchen Sie ein in den Quell-code, würde ich empfehlen, vertraut zu machen Sie sich mit "wie-es-wohl-Werke", denn sonst wird es schwer sein zu verstehen, vor allem die hash-Tabelle.