Мне нужно на короткое время хранить ассоциативные данные неизвестного количества в Java - PullRequest
0 голосов
/ 06 марта 2019

Я хочу прочитать различные теги IoT в Java и отправить их на сервер MQTT.Я мог бы просто прочитать данные и отправить их по сети, но данные могли поступать раз в несколько минут, а также в случае возникновения событий несколько раз в секунду.Поэтому я подумал о буферизации данных в виде пар «ключ -> значение» и проверке, появился ли номер тега и сколько лет назад.

Я не знаю, сколько тегов может появиться.

Вдинамические языки сценариев Я бы просто использовал объект массива или json, например {tag_number: [last_seen, times_seen]}, и проверял каждый раз, когда появляется tagnumber, я увеличиваю times_seen на 1, а если last_seen старше 1 секунды, отправляю times_seen на серверчтобы уменьшить сетевой трафик, если я получаю спам от тегов, которые сообщают о вхождениях.

Массив должен быть кратковременным, долгое время хранения выполняется сервером MQTT.

Однако Javaне имеет динамически растущих массивов, мне нужно объявить их с фиксированным количеством записей.Что было бы лучшим способом сделать это на Java?Мне не нужны полные примеры, просто подсказка, какой тип данных использовать, или класс?Правильный ли здесь объект класса буфера?

1 Ответ

0 голосов
/ 06 марта 2019

Может быть HashMap - это то, что вы ищете

Вот если вы хотите увидеть пример: https://www.w3schools.com/java/java_hashmap.asp

...