2014-01-20 4 views
-3

Позволяет сказать, что я Map<String, Integer> map = new HashMap<String, Integer>();Удаление значения из Java HashMap

map.containsValue(value) возвращает истинное ли не найдено значение в HashMap. Но я обнаружил, что нет способа удалить значение. Мне нравится map.removeValue(value). Вы можете только удалить ключ, как в, map.removeKey(key).

Теперь, на мой вопрос, удаляет ли ключ также значение?

Итак, когда я ищу map.containsValue(value), вернет ли он false, если я удалю ключ, связанный со значением, с помощью map.removeKey?

+0

Почему бы вам не попробовать? Также 'removeKey' не существует. И если вы читаете документ, он указывает: _ «Удаляет отображение для ключа с этой карты, если оно присутствует (дополнительная операция)». _ –

+0

Что вы получили от этого? – Christian

+0

Отходы времени, его более полезно, если вы просто дадите мне ответ. – user2817240

ответ

1

Теперь, мой вопрос заключается в том, удаляет ли ключ также значение?

Да. Вроде.

Собственно, он удаляет определенную запись, которая состоит из ключа и значения.

Если значение также используется в другой записи, тогда эта другая запись не изменяется, и значение все равно будет отображаться в коллекции values.

Так что, когда я ищу map.containsValue(value), он будет возвращать ложь, если я удалил ключ, связанный со значением с map.removeKey?

Это зависит ... см. Выше.


Эта информация может быть легко найден чтение тщательно перемешать Javadoc.

(Проблема с подходом «попробуй и посмотри» в том, что легко написать тест «черного ящика», который заставит вас сделать неправильные выводы. Я бы предложил только «попробовать и посмотреть», если javadoc НЕ содержал информацию. И я бы добавил «прочитать источник» ...)

+0

Хорошо, спасибо за ответ. Многие другие ответы говорили мне «попробовать и посмотреть», но я прочитаю java-документ. – user2817240

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