Структура данных Java для коллекции очередей - PullRequest
3 голосов
/ 31 января 2012

Если у меня много очередей, и у каждой есть уникальный идентификатор, можно ли использовать Hashtable of Queues? Я знаю, звучит странно, что я спрашиваю об этом, но просто задаюсь вопросом, может ли быть лучший способ оптимизации.

Извините за недостаток информации. Я в основном храню очереди сообщений, которые идентифицируются по идентификатору клиента. Клиент запросит получение сообщений с сервера. В случае, когда подтверждение не достигает сервера, сообщение все еще остается в очереди, пока клиент не предпримет другую попытку получить самое старое сообщение. Идея состоит в том, чтобы сохранить все сообщения, если клиенту не удалось получить подтверждение, и извлечь все сообщения способом FIFO.

Ответы [ 2 ]

5 голосов
/ 31 января 2012

Вопрос не дает никаких подробностей о том, что вы хотите сделать с этим. И это очень важно, потому что шаблон использования имеет решающее значение при определении того, какая структура данных будет наиболее эффективной для вашего варианта использования .

Но я бы сказал, что в отсутствие других деталей HashTable of Queues звучит как разумный выбор: HashTable использует идентификатор в качестве ключа и соответствующую очередь в качестве значения.

Тогда обе следующие операции будут O (1) с очень низкими издержками:

  • Добавить элемент в очередь с заданным идентификатором
  • Извлечь первый элемент из очереди с заданным идентификатором

Какой тип использования вам, вероятно, понадобится в большинстве случаев .....

0 голосов
/ 31 января 2012

, поскольку java статически типизирован, я бы определенно использовал хеш-таблицу ... (то есть, если мы говорим об оптимизации)

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