Удаление элемента карты внутри TreeMap - PullRequest
0 голосов
/ 30 октября 2018

У меня есть эта структура

TreeMap<String,Map<String,String>> map;

И я хочу удалить одну из пары ключ-значение на карте, найденной ключом. Я попробовал:

map.get(key).remove(key2);

Но выдается исключение NullPointerException. Чтобы найти проблему, я попытался:

Map<String,String> aux = map.get(key);
aux.remove(key2);

и увидел, что map.get просто возвращает ноль.

Есть решение? Заранее спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете проверить, присутствует ли внешний ключ (в данном случае key) на внешней карте, и вызвать вторую get, только если это правда.

Map<String,String> outerKey = map.get(key);
if(outerKey != null) {
    outerKey.remove(key2)
}

Вы получаете NullPointerException, потому что ключ key отсутствует на внешней карте (или сопоставлен с нулевым значением), поэтому map.get(key) возвращает ноль.

...