Ecco come HashMap uguale metodo funziona:
public boolean equals(Object o) {
..........
..........
Map<K,V> m = (Map<K,V>) o;
..........
Iterator<Entry<K,V>> i = entrySet().iterator();
while (i.hasNext()) {
Entry<K,V> e = i.next();
K key = e.getKey();
V value = e.getValue();
if (value == null) {
if (!(m.get(key)==null && m.containsKey(key)))
return false;
} else {
if (!value.equals(m.get(key)))
return false;
}
...........
...........
return true;
}
Ora, poiché, si invoca il metodo equals di oggetti di valore, questo significa che gli oggetti di valore per una data chiave dovrebbero essere lo stesso (come governata da pari metodo) .
Sopra ti aiuterà a capire in quale caso passeranno i tuoi JUnit. Nel suo metodo di JUnit è possibile utilizzare:
public static void assertEquals(java.lang.Object expected,
java.lang.Object actual)
Vedere link per maggiori dettagli.
Saluti !!
fonte
2013-09-05 04:45:09
Se si utilizza Java 1.7 o versione superiore, sotto frammento di codice funzionerà. '' 'Oggetti.uguale (previstoWordMap, actualWordMap) '' ' . . Per ulteriori informazioni sul metodo equals: https://docs.oracle.com/javase/8/docs/api/java/util/Objects.html#equals-java.lang.Object-java.lang.Object - –