Размещение значений во внутренней карте - PullRequest
0 голосов
/ 31 мая 2019

У меня есть ConcurrentHashMap, который выглядит следующим образом:

private Map<String,Map<String,Set<PublicKey>>> instancePairs = new ConcurrentHashMap<>();

И метод, который должен заполнить этот хэш-карту.

Но я не могу понять, как поставитьзначения на карте

В настоящее время у меня есть:

instancePairs.putIfAbsent(inMemoryInstance.getUsername(), inMemoryInstance.getId() , publicKeySet);

Intellij Идея дает мне эту ошибку:

picture

1 Ответ

0 голосов
/ 31 мая 2019

Как упомянул "DDovzhenko", вам нужно будет сделать что-то вроде следующего:

//Get the map containing the ID as keys, if it doesn't exist, then create one.
Map mapValuesForName = instancePairs.getOrDefault(inMemoryInstance.getUsername(), new ConcurrentHashMap<String,Set<PublicKey>>());

//Put the publicKeySet based on the Id.
mapValuesForName.putIfAbsent(inMemoryInstance.getId(), publicKeySet);

//Store the potentially changed/new value back in original map.
instancePairs.put(mapValuesForName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...