Класс LinkedHashMap расширяет HashMap и поддерживает связанный список записей на Map в том порядке, в котором они были вставлены. Это позволяет итерации ввода-вывода по Map. То есть при итерировании LinkedHashMap элементы будут возвращены в том порядке, в котором они были вставлены.

Вы также можете создать LinkedHashMap, который возвращает свои элементы в том порядке, в котором они были в последний раз.

Конструкторы

Ниже приведен список конструкторов, поддерживаемых классом LinkedHashMap.

Конструктор и описание
1LinkedHashMap( )
Этот конструктор создает стандартную ссылку LinkedHashMap.
2LinkedHashMap(Map m)
Этот конструктор инициализирует LinkedHashMap с элементами из данного класса Map m.
3LinkedHashMap(int capacity)
Этот конструктор инициализирует LinkedHashMap с заданной емкостью.
4LinkedHashMap(int capacity, float fillRatio)
Этот конструктор инициализирует как емкость, так и коэффициент заполнения. Значение емкости и коэффициент заполнения такие же, как для HashMap.
5LinkedHashMap(int capacity, float fillRatio, boolean Order)
Этот конструктор позволяет указать, будут ли элементы храниться в связанном списке по порядку вставки или по порядку последнего доступа. Если Order = true, используется порядок доступа. Если Order = false, используется порядок вставки.

Методы

Помимо методов, унаследованных от его родительских классов, LinkedHashMap определяет следующие методы:

Методы и описание
1void clear()
Удаляет все отображения из этого Map.
2boolean containsKey(Object key)
Возвращает true, если этот Map отображает один и более ключей в указанное значение.
3Object get(Object key)
Возвращает значение, на которое эта карта отображает указанный ключ.
4protected boolean removeEldestEntry(Map.Entry eldest)
Возвращает true, если эта карта должна удалить свою старшую запись.

Пример

Следующая программа демонстрирует работу нескольких методов, поддерживаемых коллекцией LinkedHashMap в Java:

import java.util.*;
public class LinkedHashMapDemo {

   public static void main(String args[]) {
      // Создаём хэш-карту
      LinkedHashMap lhm = new LinkedHashMap();
      
      // Помещаем элементы в карту
      lhm.put("Зарина", new Double(3434.34));
      lhm.put("Марк", new Double(123.22));
      lhm.put("Андрей", new Double(1378.00));
      lhm.put("Денис", new Double(99.22));
      lhm.put("Михаил", new Double(-19.08));
      
      // Получаем вид элементов
      Set set = lhm.entrySet();
      
      // Получаем итератор
      Iterator i = set.iterator();
      
      // Отображаем элементы
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // Вносим 1000 на счёт Зарины
      double balance = ((Double)lhm.get("Зарина")).doubleValue();
      lhm.put("Зарина", new Double(balance + 1000));
      System.out.println("Новый баланс Зарины: " + lhm.get("Зарина"));
   }
}

Получим следующий результат:

Зарина: 3434.34
Марк: 123.22
Андрей: 1378.0
Денис: 99.22
Михаил: -19.08

Новый баланс Зарины: 4434.34

Оглавление