2013-02-16 2 views
0

У меня есть HashMap HashMap<Integer, List<String>> storeR и он хранит "22,name1,name2" .. но есть ли способ удалить name1 из 22? я просто хочу удалить только имя 1 из 22. Как я это делаю. Я надеюсь, что вы можете мне помочь. Спасибо.Удалить данные из HashMap java

+5

Что вы пробовали? Вы пробовали посмотреть документацию «HashMap» и «List»? –

ответ

4

Получить список из вашей карты и удалить элемент, который вы хотите удалили:

storeR.get(22).remove("name1"); 

Если нет на карте ни одна клавиша 22, или это значение null это будет бросать NullPointerException, хотя ,

+0

@ jlordo..thank you .. :) – user2064467

3

Учитывая вопросы вы задавали вокруг этого, вы бы лучше с помощью сторонней библиотеки: Guava имеет Multimap интерфейс с различными реализациями - вы, вероятно, хотите ArrayListMultimap.

Вы можете просто написать:

multimap.remove(22, "name1"); 

Если вы действительно хотите, чтобы делать всю работу вручную самостоятельно, вы можете позвонить get на карте, чтобы вернуть список, а затем remove в списке для удаления значения. Но вы должны подумать, хотите ли вы также полностью удалить ключ, если вы удалили последнее значение - и, конечно, если вы не знаете, существует ли ключ на карте, вам нужно только условно call remove ...

Смежные вопросы