Получение ключей hashmap на основе значения параметра и значений ниже его - PullRequest
0 голосов
/ 19 октября 2019

В основном я хочу перебрать хеш-карту со значением, заданным пользователем, но также включить любые меньшие значения "цена", которые имеют ключи. Возможные значения с ключами: 1250, 900, 600, 300.

Например, если пользователь вводит 600, но есть ключи для значения 300, выведите все ключи для значения 600 и 300.

Этото, что у меня есть, но оно будет печатать только ключи для начального значения, а не для нижних.

    private Map<Integer, Integer> prices = new HashMap<>();
    private Map<Integer, Integer> bestPrices = new HashMap<>();

    public void findBestPrice(LithiumPricing obj, Integer value)
    {
        //get hashmap prices from class LithiumPricing.
        prices = obj.getPrices();
        bestPrices.clear();
        if (prices.containsValue(value)){
            for (Map.Entry<Integer, Integer> entry : prices.entrySet()) {
                if (entry.getValue() <= value){
                     bestPrices.put(entry.getKey(), value);
                }
            }
        }
    } 

1 Ответ

0 голосов
/ 19 октября 2019

Проблема с вашим кодом заключается в том, что вы вводите само значение поиска следующим образом:

bestPrices.put(entry.getKey(), value);

Вместо этого вы должны указать значение записи следующим образом:

bestPrices.put(entry.getKey(), entry.getValue());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...