Сортированная структура данных, которая эффективна и может хранить исходное сообщение с соответствующими временными метками
Я хочу отправлять различные строки сообщений XML в зависимости от времени. Я думал о реализации структуры данных в JAVA и помещал в нее все сообщения XML со временем, когда они должны быть отправлены. Я хочу использовать отсортированную структуру данных, чтобы каждый раз, когда сообщение попадало в структуру данных, оно сортировалось, и при отправке я мог проверить их соответствующее время и вывести сообщения. Я хочу знать, какая структура данных будет наиболее эффективной и как я могу ее реализовать. Также, как я могу поставить время в секундах с каждой строкой XML.
Это как:
Message 1, time to send T + 1 ---- put to the data structure
Message 2, time to send T + 4 ---- put to the data structure
Message 3, time to send T + 3 ---- put to the data structure....
Будет отдельная ветка, которая будет проверять сообщения в структуре данных каждую секунду и удалять все сообщения, которые подходят для выхода.
1 ответ
Если я правильно понял вашу проблему. Ты хочешь
- Хранить сообщения, которые будут отсортированы по времени
- получит сообщение. Сообщение с более ранней меткой времени будет получено первым
- будет доступен из нескольких потоков..
Если приведенные выше случаи верны, то я думаю, что вам понадобится потокобезопасная очередь. Так как
- Как вам нужно сортировать на основе времени, поэтому нет необходимости сортировать вручную. как сообщение с более ранним временем будет вставлено первым
- это пятерка.
В этом случае хорошим вариантом будет http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html.