Sobes.tech
Junior — Middle

Obyekt daxilində açar kimi mətn olmayan dəyər istifadə oluna bilərmi?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da (və, xüsusən, Android-də) standart obyektlərdə, məsələn, HashMap-də açar hər hansı bir sinifin obyekti ola bilər, mütləq sətir deyil. Əsas odur ki, bu obyekt equals()hashCode() metodlarını düzgün şəkildə həyata keçirir. Məsələn, Integer, Enum və ya öz sinfləriniz açar kimi istifadə oluna bilər.

Nümunə:

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

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

Ancaq, əgər adi obyekt equalshashCode metodlarını yenidən yazmadan istifadə olunursa, davranış gözlənilməz ola bilər, çünki açarlar bu metodlara görə müqayisə olunur. JavaScript-dən fərqli olaraq, obyektin açarları həmişə sətirə çevrilir, Java-da isə Map-də açarlar hər hansı obyekt ola bilər.