Sobes.tech
Junior — Middle

Може ли као кључ у објекту да се користи нестринг вредност?

sobes.tech АИ

Одговор од АИ

U Javi (i, posebno, u Androidu) ključ u standardnim objektima poput HashMap može biti objekat bilo koje klase, ne nužno string. Važno je da taj objekat ispravno implementira metode equals() i hashCode(). Na primer, mogu se koristiti Integer, Enum ili sopstvene klase kao ključevi.

Primer:

Map<Integer, String> map = new HashMap<>();
map.put(1, "jedan");
map.put(2, "dva");

String value = map.get(1); // "jedan"

Međutim, ako koristite običan objekat bez prepisivanja equals i hashCode, ponašanje može biti neočekivano, jer se ključevi porede prema tim metodama. Za razliku od JavaScript-a, gde su ključevi objekta uvek pretvoreni u string, u Javi ključevi u Map mogu biti bilo koji objekti.