Junior
Дар бораи коллексияи Map дар Java ва хусусиятҳои он нақл кунед.
sobes.tech AI
Ҷавоб аз AI
Map — интерфейси дар Java Collection Framework, ки маҷмӯаи ҷуфтҳои "калид-арзиш"-ро намояндагӣ мекунад. Калидҳо ягона мебошанд, вале арзишҳо метавонанд такрор шаванд.
Хусусиятҳои асосӣ:
- Калид барои дастрасӣ ба арзиши мувофиқ истифода мешавад.
- Як калид наметавонад ду маротиба илова шавад. Ҳангоми кӯшиши илова кардани калиди мавҷуда, арзиши кӯҳна бо нав иваз мешавад.
Mapаз интерфейсиCollectionмерос нагирифтааст. Методи худро барои кор бо ҷуфтҳои "калид-арзиш" дорад.- Тартиби ҷуфтҳои "калид-арзиш" метавонад вобаста ба иҷрои мушаххас тағйир ёбад.
Иҷрои маъруфи Map:
HashMap: Тартиби элементҳоро кафолат намекунад. Барои аксар амалҳо (вуруди, гирифтани, тоза кардани) бо кам конфликтҳои хеши баланд иҷроиш медиҳад.LinkedHashMap: Элементҳоро дар тартиби илова кардан нигоҳ медорад (ё дар тартиби дастрасӣ, агар мувофиқи он танзим карда шавад).TreeMap: Элементҳоро дар тартиби сортишудаи асоси калид нигоҳ медорад (тартиби табиӣ ё бо истифода аз муқоисакунанда). Вақти логарифмиро барои аксар амалҳо таъмин мекунад.
Маслиҳатҳо барои методҳо:
// Гирифтани арзиш бо калид
Object value = map.get(key);
// Илова ё навсозии ҷуфт калид-арзиш
Object oldValue = map.put(key, value);
// Тоза кардани ҷуфт бо калид
Object removedValue = map.remove(key);
// Санҷидани мавҷудияти калид
boolean containsKey = map.containsKey(key);
// Санҷидани мавҷудияти арзиш
boolean containsValue = map.containsValue(value);
// Гирифтани маҷмӯаи ҳамаи калидҳо
Set<KeyType> keys = map.keySet();
// Гирифтани маҷмӯаи ҳамаи арзишҳо
Collection<ValueType> values = map.values();
// Гирифтани маҷмӯаи ҳамаи воридот (ҷуфтҳои калид-арзиш)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();
// Гирифтани андозаи Map
int size = map.size();
Истифодаи Map.Entry дар вақти итеррасия:
// Итеррасия дар Entry set
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
KeyType key = entry.getKey();
ValueType value = entry.getValue();
// ...
}