Junior — Middle
Məlumat kolleksiyalarında dəyişdirilə bilən açarların istifadəsi zamanı hansı nəticələr ortaya çıxa bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da HashMap və ya HashSet kimi məlumat kolleksiyalarında dəyişkən (mutable) açarların istifadəsi ciddi problemlərə səbəb ola bilər. Əsas səbəb odur ki, açarlar dəyişməz (immutable) olmalıdır ki, hash kodu və bərabərlik sabit qalsın.
Əgər açar kolleksiyaya əlavə edildikdən sonra dəyişərsə:
- Açarın hash kodu dəyişə bilər və kolleksiya bu açar ilə elementi tapa bilməz.
- Bu, elementin "itirilməsinə" səbəb olar: o, strukturdə qalacaq, amma ona çıxış mümkün olmayacaq.
- Məlumatların bütövlüyü və kolleksiyanın düzgün işləməsi pozulur.
Nümunə:
Map<List<String>, String> map = new HashMap<>();
List<String> açar = new ArrayList<>();
açar.add("initial");
map.put(açar, "dəyər");
// Əlavə etdikdən sonra açarı dəyişdirin
açar.add("dəyişdirilmiş");
// Açar ilə dəyəri alma cəhdləri uğursuz olacaq
String dəyər = map.get(açar); // null
Bu səbəbdən, açar kimi dəyişməz obyektlərin istifadəsi tövsiyə olunur, məsələn, sətirlər, ədədlər və ya xüsusi yaradılmış dəyişməz sinflər.