Integer i = 2;
String key = "k";
Map<String, Integer> aDict = new HashMap<>();
Map<String, Integer> bDict = new HashMap<>();
aDict.put(key, i);
bDict.put(key, i);
System.out.println(aDict.values().equals(bDict.values()));
Os retornos acima false
— testados em vários tempos de execução. Por que isso acontece?