Junior — Middle
Obyekt ichida kalit sifatida satr bo'lmagan qiymatdan foydalanish mumkinmi?
sobes.tech AI
AIdan javob
Java'da (va, ayniqsa, Androidda) HashMap kabi standart obyektlarda kalit har qanday sinfning ob'ekti bo'lishi mumkin, majburiy emas satr. Muhimi, bu ob'ekt equals() va hashCode() metodlarini to'g'ri amalga oshirgan bo'lishi kerak. Masalan, Integer, Enum yoki o'z sinflaringizni kalit sifatida ishlatishingiz mumkin.
Misol:
Map<Integer, String> map = new HashMap<>();
map.put(1, "bir");
map.put(2, "ikki");
String value = map.get(1); // "bir"
Ammo, agar oddiy ob'ektni equals va hashCode ni qayta yozmasdan ishlatsangiz, xatti-harakatlar kutilmagan bo'lishi mumkin, chunki kalitlar bu metodlar bo'yicha solishtiriladi. JavaScript bilan farqli o'laroq, ob'ekt kalitlari har doim satrga aylantiriladi, Java'da esa Map'dagi kalitlar har qanday ob'ekt bo'lishi mumkin.