Из отсортированной карты я хочу получить подмножество n записей, начиная с m записей перед указанным значением v .Например, для набора ключей k = {0,2, 0,3, 0,4, 0,6, 0,8, 0,9, 1,0} запрос с n = 5, m = 2, v = 0,5, вернется {0,3, 0,4, 0,6, 0,8, 0,9}.Есть ли реализация структуры данных в Java, поддерживающая такой запрос, без необходимости перебирать весь (большой) набор?
Зачем мне это нужно?Интерполяция.Я хочу интерполировать на v на основе значений на карте.Однако у меня много v .Они отсортированы и имеют расстояние между ними намного меньше, чем в k .Итак, я беру ряд записей с карты, выполняю некоторые дорогостоящие подготовительные вычисления с ними (например, вычисляем коэффициенты полинома), а затем могу быстро интерполировать другое значение в этом диапазоне (оценивая полином с этим значением).
Но зачем мне нужны записи m перед v ?Значения в k обычно расположены на равном расстоянии друг от друга, и во избежание явления Рунге высоких колебаний на концах интервала интерполяции я просто их обрезаю, а это значит, что мне нужно несколько узлов до фактическогоинтервал интерполяции.
Имеет ли это смысл?Что вы предлагаете?
(Было бы интересно, если бы такой метод, как java.util.TreeMap.ceilingEntry (), возвращал итератор, с помощью которого я мог бы вернуться назад дважды.)