我從Java 7升級到Java 8,並注意到在使用HashMap的keySet()的地方發生Junit失敗。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();
在Java 7:
varKeys=[VAR,VAR1]
在Java 8:
varKeys=[VAR1,VAR]
任何幫助?
'Set'和'Map'是按照定義的非訂購集合。在這兩種情況下輸出都是正確的。 – Crozin
你寫的JUNIT測試用例是什麼?在HashMap/Set中不保證順序,如果需要保證順序,可以嘗試TreeSet。 –
'「var1」.toUpperCase()'應該是'VAR1'而不是'var1' –