У меня есть hashmap из благородных победителей с 1993 по 2009 год, ключевым является год, а значение представляет собой массив строк имен победителей. В течение нескольких лет у вас более одного победителя, а год больше, чем 3. Я пытаюсь удалить конкретное имя из хэш-карты и удалить ключ, если в этом конкретном году есть только один победитель. Когда я пытаюсь использовать этот метод, он удаляет весь ключ и значение, независимо от того, было ли в этом году более одного победителя. (например, в 1993 году победителями стали Нельсон Мандела и Фредерик Виллем де Клерк, если я пытаюсь удалить только Нельсон Мандела, вся запись с 1993 года ушел)Как удалить значение массива String из хэш-карты в java?
public void removeWinner(String nameOfWinnerToRemove)
{Iterator <HashMap.Entry<Integer, String[]>> it = winners.entrySet().iterator();
while(it.hasNext())
{
HashMap.Entry<Integer, String[]> entry = it.next();
for(int i = 0; i < entry.getValue().length; i++)
{
if(entry.getValue()[i].equalsIgnoreCase(nameOfWinnerToRemove))
{
it.remove();
}
}
}
}
Метод «удалить» не существует на массивах. Это будет работать, только если он будет использовать List. Вероятно, вы должны указать это в своем ответе. – Neil
Привет @Neil, Обновлен ответ. Подумайте об увеличении голосов – Backtrack
Удалено нисходящее. – Neil