Почему на этой карте стерты старые данные? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть этот код. Итак, я не понимаю, почему стерли старые данные в хэш-карте - в result.put (name, localMap)

class FilterServers  {

     // In this class, we filter our servers on our key word

    static Map <String, Map <String, String>>
    getValues(String keyWord, List <Map <String, Map <String, Monitor.Status>>> servers) {
        Map <String, Map <String, String>> result = new ConcurrentHashMap<>();
        Pattern pattern = Pattern.compile(keyWord, Pattern.CASE_INSENSITIVE);
        Matcher keyMatcher;
        Matcher valueMatcher;
        for (Map <String, Map<String, Monitor.Status>> server : servers) {
            Map <String, String> localMap = new ConcurrentHashMap<>();
            boolean haveResult = false;
            Set <String> serverName = server.keySet();
            Optional <String> optional = serverName.stream().findAny();
            String name = optional.get();
            for (Map <String, Monitor.Status> subServer : server.values()) {
                for (Map.Entry<String, Monitor.Status> entry: subServer.entrySet()) {
                    Monitor.Status targetValue = entry.getValue();
                    String targetKey = entry.getKey();
                    keyMatcher = pattern.matcher(targetKey);
                    valueMatcher = pattern.matcher(targetValue.getProblem());
                    if (keyMatcher.find() || valueMatcher.find()) {
                        localMap.put(targetKey, targetValue.getProblem());
                        haveResult = true;
                    }
                }
            }
            if(haveResult){
                result.put(name, localMap);
            }
        }
        return result;
    }
}

1 Ответ

0 голосов
/ 19 апреля 2019

Я обнаружил, что те же строки пришли ко мне в ключах (имя).И поскольку хэш-карта стирает старые значения, которые уже имели те же ключи, они были удалены от меня.Я просто поменял местами ключи и значения

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