я не понимаю, в методе buy есть первое условие существует ли в списке такое лекарство. допустим его в списке не существует, но в следующей же строке мы вызываем это лекарство из списка! как? должeн вылезти null!!! по логике в первый if должна быть вставлена такая же строка как в методе sell allDrugs.put(drug, 0);