Вот пример кода. A TreeMap
реализует интерфейс NavigableMap
, поэтому убедитесь, что вы используете его в качестве типа переменной, чтобы использовать полную мощность TreeMap
:
NavigableMap<Integer, String> map = new TreeMap<>();
// code to fill my map with values from 1 to 20, key=int, value=String.valueOf(int)
IntStream.rangeClosed(1,20).forEach(i->map.put(i, String.valueOf(i)));
NavigableMap имеет метод .subMap(start, end)
и перегрузку .subMap(start, startInclusive, end, endInclusive)
для выбора частичного вида карты, и, похоже, это то, что вам нужно.
NavigableMap<Integer, String> subMap = map.subMap(5, false, 10, false);
Это вид в реальном времени карты, которую я создал ранее, но она содержит только сопоставления между клавишами 5 и 10, исключая. Давайте проверим, работает ли это как ожидалось:
subMap.forEach(
(k, v) -> System.out.printf("Key: %d, value: '%s'%n", k, v)
);
Выход:
Ключ: 6, значение: '6'
Ключ: 7, значение: «7»
Ключ: 8, значение: «8»
Ключ: 9, значение: '9'
Как видите, карта остается отсортированной, но ограничена указанным диапазоном.