Sobes.tech
Junior

Ispričajte o kolekciji Map u Javi i njenim osobinama.

sobes.tech АИ

Одговор од АИ

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 сета
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // ...
}