Увеличение значения в Hashmap <Object, Integer>, ошибка «Не удается преобразовать целое число в P (объект)» Java - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь увеличить значение в hashmap. Я использую Java 8 и Netbeans, поэтому написал этот код:

Map<P, Integer>color_match_hash = new HashMap<P, Integer>();
for(int k=0; k<color_match_hash.size(); k++){
if(color_match_hash.get(k).equals(P_Color.get(i))){
    color_match_hash.merge(color_match_hash.get(k), 1, Integer::sum);
}

}

P - объект с 5 целыми числами. Это простой алгоритм, в котором я хочу увеличить значение ключа (k) и я получил "несовместимые типы: целое число не может быть преобразовано в P". Что я делаю не так? Я должен добавить, что я пробовал много способов увеличить это, и в каждом я имел одно и то же сообщение. Самый эффективный способ увеличить значение Map в Java

1 Ответ

0 голосов
/ 02 ноября 2018

Вы создали HashMap с ключом типа P и значением типа Integer.

Прежде всего, вы перебираете карту, как мы делаем для списка или массива.

Во-вторых, это неправильное использование - color_match_hash.get(k). Метод get ожидает значение, имеющее тип данных P (ключ).

Вы можете прочитать Как эффективно выполнять итерации по каждой записи на Java-карте? , чтобы увидеть различные способы итерации по карте.

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