Проблема с реализацией рекурсии в коллекции

Код - поиск индекса массы тела.

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);


Ответы (0 шт):