Навигация по карте Java: изучение методов headMap(), TailMap() и subMap()

При работе с интерфейсом Java NavigableMap у вас есть доступ к трем мощным методам: headMap(), TailMap() и subMap(). Эти методы позволяют перемещаться по карте и извлекать подмножества пар ключ-значение на основе определенных критериев. В этой статье мы углубимся в каждый метод, обсудим их различия, предоставим примеры кода и рассмотрим варианты практического использования. Итак, начнем!

  1. headMap():
    Метод headMap() возвращает представление той части карты, ключи которой строго меньше указанного ключа. Этот метод позволяет вам извлечь подмножество записей, стоящих перед заданным ключом. Вот пример:
NavigableMap<Integer, String> map = new TreeMap<>();
map.put(1, "Apple");
map.put(2, "Banana");
map.put(3, "Cherry");
map.put(4, "Durian");
NavigableMap<Integer, String> headMap = map.headMap(3);
System.out.println(headMap);  // Output: {1=Apple, 2=Banana}

В приведенном выше фрагменте кода headMap(3)возвращает представление карты, содержащей записи, ключи которых меньше 3. Полученная карта содержит пары ключ-значение с ключами 1 и 2.

<ол старт="2">

  • tailMap():
    Метод TailMap(), с другой стороны, возвращает представление части карты, ключи которой больше или равны указанному ключу. Он извлекает подмножество записей, которые идут после заданного ключа или равны ему. Давайте посмотрим пример:
  • NavigableMap<Integer, String> map = new TreeMap<>();
    map.put(1, "Apple");
    map.put(2, "Banana");
    map.put(3, "Cherry");
    map.put(4, "Durian");
    NavigableMap<Integer, String> tailMap = map.tailMap(2);
    System.out.println(tailMap);  // Output: {2=Banana, 3=Cherry, 4=Durian}

    В этом фрагменте кода tailMap(2)возвращает представление карты, содержащей записи, ключи которых больше или равны 2. Полученная карта содержит пары ключ-значение с ключами 2, 3 и 4..

    1. subMap():
      Метод subMap() позволяет извлечь подмножество записей, попадающих в указанный диапазон ключей. Он принимает два параметра: начальный ключ (включительно) и конечный ключ (эксклюзивный). Давайте рассмотрим пример:
    NavigableMap<Integer, String> map = new TreeMap<>();
    map.put(1, "Apple");
    map.put(2, "Banana");
    map.put(3, "Cherry");
    map.put(4, "Durian");
    NavigableMap<Integer, String> subMap = map.subMap(2, 4);
    System.out.println(subMap);  // Output: {2=Banana, 3=Cherry}

    В этом фрагменте кода subMap(2, 4)возвращает представление карты, содержащей записи с ключами, попадающими в диапазон [2, 4). Полученная карта содержит пары ключ-значение с ключами 2 и 3.

    Методы headMap(), TailMap() и subMap() класса NavigableMap предоставляют удобные способы извлечения подмножеств пар ключ-значение на основе определенных критериев. Независимо от того, нужно ли вам получить записи до заданного ключа, после заданного ключа или в пределах указанного диапазона, эти методы обеспечивают гибкость и эффективность. Понимая их различия и используя их в своем коде, вы сможете легко и точно перемещаться по картам.