Java 7からJava 8にアップグレードし、HashMapのkeySet()が使用された場所でJunitの障害が発生したことに気付きました。 Javaの7ではJava 8 HashMap KeySet()が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();
:
varKeys=[VAR,VAR1]
のJava 8では:
varKeys=[VAR1,VAR]
この上の任意のヘルプ?
'Set'と' Map'は、定義によれば順不同のコレクションです。どちらの場合も出力は正しいです。 – Crozin
あなたが書いたJUNITのテストケースは何ですか?注文はHashMap/Setで保証されません。注文を保証する必要がある場合、TreeSetを試すことができます。 –
'' var1 ".toUpperCase()'は 'var1'ではなく' VAR1'でなければなりません –