Junior
Պատմեք Java-ի Map հավաքածուի մասին և նրա առանձնահատկությունների մասին։
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();
// Ստանալ բոլոր Entries (բանալի-արժեք զույգեր)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();
// Ստանալ Map-ի չափը
int size = map.size();
Օգտագործում Map.Entry՝ իտերացիայի ժամանակ՝
// Իտերացիա Entry հավաքածուի վրա
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
KeyType key = entry.getKey();
ValueType value = entry.getValue();
// ...
}