Ich habe von Java 7 auf Java 8 aktualisiert und habe Junit-Fehler an Stellen bemerkt, an denen die keySet() von HashMap verwendet wurde.Java 8 HashMap KeySet() Ausgabe anders als Java 7
Map<String, String> map = new HashMap<String, String>();
map.put("var1".toUpperCase(), "var");
map.put("var".toUpperCase(), "var1");
Set<String> varKeys = replacementMap.keySet();
In Java 7:
varKeys=[VAR,VAR1]
In Java 8:
varKeys=[VAR1,VAR]
Jede Hilfe zu diesem Thema?
'Set' und' Map' sind definitionsgemäß voneinander unabhängige Sammlungen. Die Ausgabe ist in beiden Fällen korrekt. – Crozin
Was ist der JUNIT-Testfall, den Sie geschrieben haben? Die Reihenfolge ist nicht garantiert in einer HashMap/Set, Sie können ein TreeSet versuchen, wenn die Reihenfolge garantiert werden muss. –
'" var1 ".toUpperCase()' sollte 'VAR1' nicht' var1' sein –