public synchronized void sell(Drug drug, int count) {
String name = Thread.currentThread().getName();
if (!allDrugs.containsKey(drug)) {
System.out.println("Нет в наличии");
}
Integer currentCount = allDrugs.get(drug); //как мы в этой строчке полуаем Integer?
if (currentCount < count) {
System.out.println(String.format("%s хочет %s %d шт. В наличии - %d", name, drug.getName(), count, currentCount));
} else {
allDrugs.put(drug, (currentCount - count));
System.out.println(String.format("%s купил(а) %s %d шт. Осталось - %d", name, drug.getName(), count, (currentCount - count)));
}
Дмитрий Сидоров
28 уровень
Обьясните мне некорые моменты.
Архивный
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий Сидоров
25 июля 2018, 09:25решение
Прошелся дебагером и понял, что случайным образом выбирается лекарство и количество, затем уже в этой строчке вытягивается количество лекарства, которое в наличии. Просто не сразу понял, что get может вернуть из мапы value. Я думал, что надо getValue.
+2
Дмитрий Сидоров
25 июля 2018, 09:16
Ну я так и догадывался, пойду читать докумнтацию, ибо что то не до понял.
0
Ярослав Java Developer Master
25 июля 2018, 09:08полезный
Очевидно, что allDrugs - это Map<Drug, Integer>. Мы извлекаем значение по ключу.
+1