Sobes.tech
Junior

Papaskinkite apie Map kolekciją Java ir jos ypatybes.

sobes.tech AI

Atsakymas iš AI

Map — tai Java Collection Framework sąsaja, kuri atstovauja porų "raktas-reikšmė" kolekciją. Raktai yra unikalūs, o reikšmės gali kartotis.

Pagrindinės savybės:

  • Raktas naudojamas prieigos prie atitinkamos reikšmės gavimui.
  • Vienas ir tas pats raktas negali būti pridėtas du kartus. Bandant pridėti esantį raktą, sena reikšmė pakeičiama nauja.
  • Map nėra paveldėtas iš Collection sąsajos. Jame yra savo metodai "raktas-reikšmė" poroms dirbti.
  • "Raktas-reikšmė" porų tvarka gali skirtis priklausomai nuo konkrečios įgyvendinimo.

Populiarios Map įgyvendinimai:

  • HashMap: ner garantuoja elementų tvarką. užtikrina aukštą našumą daugumai operacijų (įterpimas, gavimas, ištrynimas) be konfliktų.
  • LinkedHashMap: saugo elementus jų pridėjimo tvarka (arba prieigos tvarka, jei tai tinkamai sukonfigūruota).
  • TreeMap: saugo elementus surūšiuotoje tvarko pagal raktą (natūrali tvarka arba pateiktas palyginimo funkcija). užtikrina logaritminį laiką daugumai operacijų.

Pavyzdiniai metodai:

// Gauti reikšmę pagal raktą
Object value = map.get(key);

// Pridėti arba atnaujinti porą
Object oldValue = map.put(key, value);

// Ištrinti porą pagal raktą
Object removedValue = map.remove(key);

// Patikrinti, ar yra raktas
boolean containsKey = map.containsKey(key);

// Patikrinti, ar yra reikšmė
boolean containsValue = map.containsValue(value);

// Gauti visų raktų rinkinį
Set<KeyType> keys = map.keySet();

// Gauti visų reikšmių rinkinį
Collection<ValueType> values = map.values();

// Gauti visų įrašų (raktas-reikšmė poros)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();

// Gauti `Map` dydį
int size = map.size();

Naudojant Map.Entry iteracijai:

// Iteracija per Entry rinkinį
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // ...
}