Entmystifizierung der Unterscheidung zwischen HashMap- und Map-Objekten
In Java erscheinen die HashMap- und Map-Objekte oft austauschbar, was zu Verwirrung hinsichtlich ihrer zugrunde liegenden Unterschiede führt . Zur Verdeutlichung: Es gibt keinen Unterschied bei den Objekten selbst – in beiden Fällen erhalten Sie eine HashMap mit einem String-Schlüssel und einem Objektwert.
Der Unterschied liegt in der Schnittstelle, die Sie dem Objekt zuordnen. Wenn Sie das Objekt als HashMap
Lassen Sie uns ein praktisches Beispiel untersuchen, um dieses Konzept zu veranschaulichen:
Stellen Sie sich eine Klasse namens Foo vor Das initialisiert zwei interne Karten, Dinge und mehr Dinge, und teilt sie über Zugriffsmethoden. Diese Karten werden zunächst als HashMaps implementiert.
Angenommen, eine Unterklasse von Foo, SpecialFoo, verwendet eine gemeinsame Methode, um sowohl Dinge als auch mehr Dinge zu manipulieren. Diese Methode wird mit derselben Schnittstelle wie die Zugriffsmethoden (HashMap
Wenn Sie sich später entscheiden, die HashMap-Implementierung in Foo durch TreeMap zu ersetzen, wird SpecialFoo auf einen Kompilierungsfehler stoßen, weil Der Vertrag wurde verletzt – Foo stellt jetzt TreeMaps anstelle von HashMaps bereit. Dies erfordert eine Überarbeitung von SpecialFoo.
Um eine solche Situation zu vermeiden, ist es ratsam, die Zugriffsmethoden und internen Zuordnungen über die allgemeine Schnittstelle Map
Die Codierung für die allgemeinste Schnittstelle ist im Allgemeinen weniger spröde und anpassungsfähiger. Durch die Einhaltung dieses Prinzips bleiben Sie flexibel und verhindern unvorhergesehene Fehler bei der Implementierung von Änderungen an Ihrer Codebasis.
Das obige ist der detaillierte Inhalt vonHashMap vs. Map: Wann sollten Sie welche verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!