Класс LinkedHashMap

Класс LinkedHashMap представляет собой реализацию интерфейса MutableMap, которая сохраняет порядок вставки элементов. В отличие от обычного HashMap, который не гарантирует порядок элементов, LinkedHashMap сохраняет элементы в том порядке, в котором они были добавлены. Это позволяет итерировать по элементам в предсказуемом порядке.

Импорт

kotlinimport kotlin.collections.LinkedHashMap

Синтаксис

kotlinLinkedHashMap()
kotlinLinkedHashMap(initialCapacity: Int)
kotlinLinkedHashMap(original: Map<K, V>)
kotlinLinkedHashMap(initialCapacity: Int, loadFactor: Float)

Пример

Создадим пустой LinkedHashMap и добавим в него несколько элементов:

kotlinval map = LinkedHashMap<String, Int>()
map["one"] = 1
map["two"] = 2
map["three"] = 3

println(map)

Результат выполнения кода:

kotlin{one=1, two=2, three=3}

Пример

Создадим LinkedHashMap из существующей карты:

kotlinval originalMap = mapOf("a" to 1, "b" to 2, "c" to 3)
val linkedMap = LinkedHashMap(originalMap)

println(linkedMap)

Результат выполнения кода:

kotlin{a=1, b=2, c=3}

Пример

Продемонстрируем сохранение порядка элементов при итерации:

kotlinval map = LinkedHashMap<Char, Int>()
map['z'] = 26
map['a'] = 1
map['m'] = 13

for ((key, value) in map) {
  println("$key -> $value")
}

Результат выполнения кода:

kotlinz -> 26
a -> 1
m -> 13

Пример

Создадим LinkedHashMap с указанием начальной емкости и фактора загрузки:

kotlinval map = LinkedHashMap<Int, String>(10, 0.75f)
map[1] = "first"
map[2] = "second"
map[3] = "third"

println(map.size)
println(map)

Результат выполнения кода:

kotlin3
{1=first, 2=second, 3=third}

Смотрите также

  • интерфейс Map,
    базовый интерфейс для всех карт
  • интерфейс MutableMap,
    интерфейс для изменяемых карт
  • класс HashMap,
    реализация карты без сохранения порядка
  • класс TreeMap,
    реализация отсортированной карты