Интерфейс SortedMap в Java расширяет Map. Он гарантирует, что записи сохраняются в порядке возрастания ключа.

Несколько методов вызывают исключение NoSuchElementException, если на вызывающей карте нет элементов. ClassCastException вызывается, когда объект несовместим с элементами на карте. Исключение NullPointerException вызывается, если совершается попытка использовать нулевой объект, когда null не разрешен на карте.

Методы, объявленные SortedMap, написаны в следующей таблице:

Методы

Методы и описание
1Comparator comparator( )
Возвращается компаратор вызывающей отсортированной Map. Если для вызванного Map используется естественный порядок, возвращается null.
2Object firstKey( )
Возвращает первый ключ в вызываемом Map.
3SortedMap headMap(Object end)
Возвращает отсортированный Map для этих записей Map с ключами, которые меньше, чем end.
4Object lastKey( )
Возвращает последний ключ в вызываемом Map.
5SortedMap subMap(Object start, Object end)
Возвращает Map, содержащий эти записи с ключами, которые больше или равны start и меньше, чем end.
6SortedMap tailMap(Object start)
Возвращает Map, содержащий эти записи с ключами, которые больше или равны start.

Пример

SortedMap имеет свою реализацию в различных классах, например TreeMap. Ниже приведен пример объяснения функциональности SortedMap:

import java.util.*;
public class TreeMapDemo {

   public static void main(String args[]) {
      // Создаём хэш-карту
      TreeMap tm = new TreeMap();
      
      // Кладём элементы в Map
      hm.put("Зоя", new Double(3434.34));
      hm.put("Марк", new Double(123.22));
      hm.put("Аня", new Double(1378.00));
      hm.put("Маргарита", new Double(99.22));
      hm.put("Михаил", new Double(-19.08));
      
      // Получаем набор элементов
      Set set = tm.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)hm.get("Зоя")).doubleValue();
      hm.put("Зоя", new Double(balance + 1000));
      System.out.println("Новый баланс Зои: " + hm.get("Зоя"));
   }
}

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

Аня: 1378.0
Маргарита: 99.22
Марк: 123.22
Михаил: -19.08
Зоя: 3434.34

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

Оглавление