HashMap # putAll () verhält sich zwischen Java 7 und Java 8 unterschiedlich

Es gab so einen Code.

Benutzerdefinierte HashMap-Klasse, die HashMap erbt


@Override
public Object put(Object key, Object value) {
	//Machen Sie den Schlüssel tiefer
	return super.put(key.toString().toLowerCase(), value);
}

Code mit einer benutzerdefinierten HashMap


CustomHashMap map = new CustomHashMap();
map.putAll(valueMap); //In Java 7 sind alle Schlüssel niedriger

Beim Upgrade von Java7 auf Java8 wurde der Kartenschlüssel nicht niedriger und verhielt sich nicht wie zuvor.

Wenn ich den Code von HashMap lese,

Es stellte sich heraus, dass dies die Ursache war. Das heißt, die überschriebene Put-Methode wird nicht aufgerufen. Sollte ich denken, dass putAll in Java 7 funktioniert hat, weil es nicht überschrieben wurde? (Vielleicht habe ich die Java 7-Implementierung gelesen.)

Recommended Posts

HashMap # putAll () verhält sich zwischen Java 7 und Java 8 unterschiedlich
[Java] Unterschied zwischen Hashmap und HashTable
[Java] Unterschied zwischen == und gleich
Unterschiede zwischen "Anfänger" Java und Kotlin
[Java] Beziehung zwischen H2DB und JDBC
[Java] Unterschied zwischen Array und ArrayList
Unterschiede zwischen Java und .NET Framework
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
Konvertierung zwischen Kotlin nullable und Java Optional
Beziehung zwischen Kotlin- und Java-Zugriffsmodifikatoren
[Für Anfänger] Unterschied zwischen Java und Kotlin
[Java] Unterschiede zwischen Instanzvariablen und Klassenvariablen
[Hinweis] Zusammenarbeit zwischen Java und DB (Basic)
[Java] Unterschied zwischen Intstream-Bereich und rangeClosed
Unterschied zwischen int und Integer in Java
[Java] Verstehe den Unterschied zwischen List und Set
Java HashMap-Klasse
Unterschied zwischen next () und nextLine () in Java Scanner
Fassen Sie die Unterschiede zwischen C # - und Java-Schrift zusammen
Java und JavaScript
Unterscheiden Sie in Java zwischen positiven und negativen Zahlen
[Java] Unterschied zwischen "endgültiger Variable" und "unveränderlichem Objekt"
[Java] Unterschied zwischen statischem final und final in Mitgliedsvariablen
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Konvertieren Sie mit Moshi zwischen Java-Objekten und JSON
[Java-Anfänger] Unterschied zwischen Länge und Länge () ~ Ich weiß nicht ~
Getter und Setter (Java)
[Java] Thread und ausführbar
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
Lesen Sie die Java HashMap-Quelle
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
Wechseln Sie zwischen JDK 7 und JDK 8
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
Unterschied zwischen vh und%
[Java] Variablen- und Typtypen
Unterschied zwischen i ++ und ++ i
Java (Klasse und Instanz)
[Java] Überladen und überschreiben
[Java Bronze-Lernen] Unterschied zwischen Kapselung, Ausblenden von Daten und Ausblenden von Informationen
Unterschied zwischen Java und JavaScript (wie man den Durchschnitt findet)
Was hat sich zwischen Effective Java 2nd Edition und 3rd Edition geändert?
[Java] Unterschied zwischen der Zuweisung der Basistypvariablen und der Zuordnung der Referenztypvariablen
[Java] Überprüfen Sie den Unterschied zwischen orElse und orElseGet mit IntStream
Denken Sie über die Unterschiede zwischen Funktionen und Methoden nach (in Java)
Unterschiede im Umgang mit Zeichenfolgen zwischen Java und Perl