Сортированная структура данных, которая эффективна и может хранить исходное сообщение с соответствующими временными метками

Я хочу отправлять различные строки сообщений 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 ответ

Если я правильно понял вашу проблему. Ты хочешь

  1. Хранить сообщения, которые будут отсортированы по времени
  2. получит сообщение. Сообщение с более ранней меткой времени будет получено первым
  3. будет доступен из нескольких потоков..

Если приведенные выше случаи верны, то я думаю, что вам понадобится потокобезопасная очередь. Так как

  1. Как вам нужно сортировать на основе времени, поэтому нет необходимости сортировать вручную. как сообщение с более ранним временем будет вставлено первым
  2. это пятерка.

В этом случае хорошим вариантом будет http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html.

Другие вопросы по тегам