Senior
Šta će se desiti sa HashMap ako hashCode uvek vraća konstantu?
sobes.tech АИ
Одговор од АИ
Ако metoda hashCode() uvek vraća istu konstantu, onda će svi objekti pasti u istu korpu (bucket) unutar HashMap. To će dovesti do pogoršanja performansi operacija umetanja, pretraživanja i brisanja sa amortizovanim O(1) na O(n), jer će svi elementi biti smešteni u jedan spisak ili stablo unutar te korpe.
Primer:
class BadHash {
@Override
public int hashCode() {
return 42; // konstanta
}
@Override
public boolean equals(Object obj) {
return this == obj;
}
}
Korišćenje takvih objekata u HashMap će dovesti do značajnog pogoršanja performansi zbog kolizija.