NavigableMap w Java to interfejs rozszerzający SortedMap, który zapewnia dodatkowe metody do przeszukiwania i manipulacji mapami, które są posortowane według kluczy. W tym artykule omówimy różnice pomiędzy trzema metodami tego interfejsu: headMap(), tailMap() i subMap(). Te metody umożliwiają wyodrębnienie części mapy na podstawie kluczy i są niezwykle użyteczne w programowaniu, gdzie potrzebujemy operować na wybranych fragmentach danych.
Przykład zastosowania metod: headMap(), tailMap(), subMap()
Zacznijmy od przykładowego kodu, który pokaże jak te metody działają na praktycznym przykładzie.
import java.util.TreeMap;
import java.util.NavigableMap;
public class MapMethodsExample {
public static void main(String[] args) {
// Tworzenie i inicjalizacja NavigableMap
NavigableMap<Integer, String> map = new TreeMap<>();
map.put(1, "Jeden");
map.put(2, "Dwa");
map.put(3, "Trzy");
map.put(4, "Cztery");
map.put(5, "Pięć");
// Użycie metody headMap() do pobrania kluczy mniejszych od 3
NavigableMap<Integer, String> headMap = map.headMap(3, false);
System.out.println("headMap: " + headMap);
// Użycie metody tailMap() do pobrania kluczy większych lub równych 3
NavigableMap<Integer, String> tailMap = map.tailMap(3, true);
System.out.println("tailMap: " + tailMap);
// Użycie metody subMap() do pobrania kluczy od 2 do 4 (włącznie z 2 i bez 4)
NavigableMap<Integer, String> subMap = map.subMap(2, true, 4, false);
System.out.println("subMap: " + subMap);
}
}
Komentarze w kodzie wyjaśniają działanie poszczególnych metod:
- headMap(k, boolean) zwraca widok mapy zawierający klucze mniejsze od
k
. Jeśli drugi argument jesttrue
,k
jest włączane do wyniku. - tailMap(k, boolean) zwraca widok mapy zawierający klucze większe lub równe
k
. Drugi argument decyduje, czyk
ma być włączony. - subMap(k1, boolean1, k2, boolean2) zwraca widok mapy od klucza
k1
dok2
. Argumentyboolean1
iboolean2
decydują o tym, czy odpowiednie granice są włączane do wyniku.
Podsumowanie
Metody headMap()
, tailMap()
i subMap()
w interfejsie NavigableMap pozwalają na wydajne przeszukiwanie i manipulację posortowanymi mapami w Java. Każda z tych metod oferuje inny sposób wybierania fragmentów mapy, co jest szczególnie przydatne w aplikacjach, które wymagają częstego dostępu do posortowanych danych. Przykład pokazuje, jak łatwo można wyodrębnić różne części mapy, używając tych metod.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.