выпуск A:
В вашем коде есть цикл while
, который проверяет числа, но каждый раз, когда пользователь вводит число, вы просматриваете список чисел и проверяете четные числа.
Наиболее логичным способом было бы изменить ваш код, чтобы он проверял четные числа после того, как пользователь ввел все свои числа. Или вы можете добавить это, что является меньшим решением, но оно будет работать:
listEven.add(list.get(i));
Измените код выше на код ниже.
if (!listEven.contains(list.get(i))) {
listEven.add(list.get(i));
}
Выпуск B:
Ошибка заключается в этом коде:
// below part of the code finds number occurrence count
for (Integer intNum : list) {
if (!(hmap).containsKey(intNum)) {
hmap.put(intNum, 1);
} else {
// below part to take care if a number comes twice i add 1
// more(+1)
hmap.put(intNum, list.get(intNum) + 1);
}
// Above part of the code finds number occurrence count
}
Вы пытаетесь выполнить list.get(intNum)
, однако метод get
требует index , а не значения, которое вы пытаетесь найти. Я думаю, что вы хотели набрать hmap.get(intNum)
вместо list.get(intNum)
, это обновит счет правильно.