Метод subMap
Метод subMap класса TreeMap возвращает
представление части коллекции, элементы которой
имеют ключи в заданном диапазоне. Сама коллекция
при этом не изменяется. В первый параметр мы
передаем начальный ключ диапазона, во второй -
конечный ключ диапазона. По умолчанию начальный
ключ включается в результат, а конечный - нет.
Также можно передать третий и четвертый параметры
логического типа, которые указывают, включать ли
начальный и конечный ключи в результат.
Синтаксис
map.subMap(fromKey, toKey)
map.subMap(fromKey, fromInclusive, toKey, toInclusive)
Пример
Давайте создадим коллекцию TreeMap и получим
часть элементов с ключами от 2 до 4
(конечный ключ не входит в результат):
import java.util.TreeMap;
public class Main
{
public static void main(String[] args)
{
TreeMap<Integer, String> map = new TreeMap<>();
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");
map.put(4, "d");
map.put(5, "e");
TreeMap<Integer, String> res = new TreeMap<>(map.subMap(2, 4));
System.out.println(res);
}
}
Результат выполнения кода:
{2=b, 3=c}
Пример
Давайте включим конечный ключ в результат, передав третий и четвертый параметры:
import java.util.TreeMap;
public class Main
{
public static void main(String[] args)
{
TreeMap<Integer, String> map = new TreeMap<>();
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");
map.put(4, "d");
map.put(5, "e");
TreeMap<Integer, String> res = new TreeMap<>(map.subMap(2, true, 4, true));
System.out.println(res);
}
}
Результат выполнения кода:
{2=b, 3=c, 4=d}
Пример
Давайте исключим начальный ключ из результата,
передав первый логический параметр как false:
import java.util.TreeMap;
public class Main
{
public static void main(String[] args)
{
TreeMap<Integer, String> map = new TreeMap<>();
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");
map.put(4, "d");
map.put(5, "e");
TreeMap<Integer, String> res = new TreeMap<>(map.subMap(2, false, 4, true));
System.out.println(res);
}
}
Результат выполнения кода:
{3=c, 4=d}