Проблема с реализацией рекурсии в коллекции
Код - поиск индекса массы тела.
import java.util.*;
public class BMIColletction {
TreeMap<Float, String> messages;
ArrayList<Float> values;
public BMIColletction() {
messages = new TreeMap<>();
values = new ArrayList<>();
}
void addNewParam(float limit, String message) {
messages.put(limit, message);
}
public static void main(String[] args) {
BMIColletction bmicol = new BMIColletction();
bmicol.addNewParam(16.0f, "Выраженный дефицит массы тела");
bmicol.addNewParam(30.0f, "Избыточная масса тела (предожирение)");
bmicol.addNewParam(40.0f, "Очень резкое ожирение");
bmicol.addNewParam(35f, "Ожирение резкое");
bmicol.addNewParam(25f, "Избыточная масса тела (предожирение)");
System.out.println("число?:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
while (bmicol.between(num,next,prev)){
// bmicol.messages.prev
// bmicol.messages.next
// bmicol.messages.iterator
}
}
static boolean between(double x, double from, double to) {
return (x > from) && (x <= to);
}
}
Проблема: Чтобы реализовать рекурсию с помощью логического метода, мне нужны i-е элементы коллекции. Я планирую начать с краёв коллекции и каждую итерацию цикла while проверять условие, и перешагивать на next/prev элемент коллекции.
Вопрос: Как получить next/prev для TreeMap ?
P.S. что-то еще есть здесь https://stackoverflow.com/questions/46270857/how-to-get-previous-and-next-entries-in-treemap, но это не понятно для меня.
Что-то такое bmicol.messages.tailMap(num);