Sobes.tech
Junior — Middle

Vai objektā kā atslēga var tikt izmantota ne teksta vērtība?

sobes.tech AI

Atbilde no AI

Java (un, īpaši, Android) standarta objektos, piemēram, HashMap, atslēga var būt jebkuras klases objekts, ne obligāti virkne. Galvenais ir tas, ka šis objekts pareizi īsteno equals() un hashCode() metodes. Piemēram, var izmantot Integer, Enum vai savas klases kā atslēgas.

Piemērs:

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

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

Tomēr, ja izmantojat parastu objektu bez equals un hashCode pārrakstīšanas, uzvedība var būt neparedzama, jo atslēgas tiek salīdzinātas pēc šiem metodēm. Atšķirībā no JavaScript, kur objekta atslēgas vienmēr tiek pārvērstas uz virkni, Java Map atslēgas var būt jebkuri objekti.