Необходимо отображать количество различных местоположений, связанных с IP-адресом, используя Hashmap - PullRequest
0 голосов
/ 16 апреля 2019

Мы работаем над проектом, и одна из вещей, которые нам нужно сделать, это показать, во сколько разных местах появился MAC-адрес. Мы используем RedisGraph для запроса информации, и я использовал хэш-карту дляполучить данные.Моя проблема заключается в том, что в ответе json мне будет указан mac-адрес несколько раз, три раза с одним и тем же местоположением и один раз с другим.Я хочу получить ответ JSON, который показывает, что MAC-адрес с количеством мест 2, поэтому он учитывает только разные места.Любая помощь высоко ценится и ниже мой код.

        ResultSet resultSet = api.query(GET_COUNT_OF_LOCATIONS_FOR_DEVICE);
        JSONArray finalResult = new JSONArray();

        JSONArray jsonArray = new JSONArray();

        try {
            while (resultSet.hasNext()) {

                JSONObject joined = new JSONObject();
                Map<String, String> mac = new HashMap<String, String>();
                Map<String, String> location = new HashMap<String, String>();
                Map<String, String> location_count = new HashMap<String, String>();

                Record record = resultSet.next();
                mac.put("mac_address", record.getString("m.address"));
                location.put("location", record.getString("l.lo"));
                location_count.put("location_count", record.getString("l.lo"));

                joined.put("mac_address", mac.values().stream().map(i -> i).collect(Collectors.toSet()));
                joined.put("location", location.values().stream().map(i -> i).collect(Collectors.toSet()));
                joined.put("location_count", location.values().stream().map(i -> i).collect(Collectors.toSet()).size());


                jsonArray.put(joined);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        finalResult.put(jsonArray);
        return finalResult;

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