Контекст здесь является контекстом при распределении питания пассажирам авиакомпании.
Учитывая HashMap, называемый allMealsList, который извлекается из ответа API и выглядит так:
... Я хочу выбрать случайную еду и вернуть ее, чтобы взрослый пассажир получил случайную еду.Не беспокойтесь об условном if («взрослый»), я занимаюсь этим в другом месте.
Я пытаюсь уменьшить правильное значение из HashMap.
Мой метод таков:
public String chooseAvailableMeals(HashMap<String, Integer> allMealsList, String paxType) {
for (Iterator<Map.Entry<String, Integer>> it = allMealsList.entrySet().iterator(); it.hasNext(); ) {
Random generator = new Random();
Map.Entry<String, Integer> entry = it.next();
if (Objects.equals(paxType, "adult")) {
Object[] meals = allMealsList.keySet().toArray();
Object randomMeal = meals[generator.nextInt(meals.length)];
entry.setValue(entry.getValue() - 1);
return (String) randomMeal;
}
}
Где я делаю:
entry.setValue(entry.getValue() - 1);
Это, конечно, уменьшение не значения из рандомизированного ключа, а первого ключа - в данном случае "BBML".
Имейте в виду, что я относительный новичок в Java, поэтому я 'я уверен, что есть более элегантный или эффективный способ сделать это;).Заранее спасибо.