Удаление ключа объекта класса из Map в Java - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть карта с парой ключ / значение, состоящей из строки и объекта класса Block. Метод remove(Object key, Object value) не может фактически удалить указанный объект.

private static Map<String, ArrayList<Block>> stockInfo = new LinkedHashMap<>();

Моя IDE подсказывает мне, что моя запись в Object value поле данных " может не содержать значений типа" Блок " "Какую фундаментальную концепцию мне не хватает в Java и передаче значений в методы? Я только короткое время программировал на Java.

stockInfo.remove(symbolCode, (stockInfo.get(symbolCode)).get(0));

1 Ответ

1 голос
/ 01 ноября 2019

У меня есть карта с парой ключ / значение, состоящей из строки и объекта класса Block.

Нет, нет.

Вы объявили отображение String в коллекцию объектов типа Block. В частности, коллекция ArrayList.

Таким образом, компилятор отклоняет вашу попытку удалить запись строка-в-блок, поскольку таких записей нет. В вашем Map есть только записи строка-список-блоков.

Map<String, ArrayList<Block>> stockInfo = new LinkedHashMap<>();

Отображение строки в блок будет выглядеть так:

Map< String, Block > 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...