2015-09-04 4 views
0

У нас есть сценарий, который должен хранить ограниченное количество идентификаторов строк. Нормально 30. У нас есть следующие условия.Структура данных типа очереди запросов для идентификаторов строки хранилища

  1. Если кто-то добавляет 31, тогда необходимо удалить самый старый и добавить новый.
  2. Если кто-то добавляет один и тот же идентификатор, необходимо удалить старое и добавить новое в начало.

В настоящее время Гуава имеет EvictingQueue.But не знает, что это должно позволить duplicates.If дубликата приходит нужно удалить старейшую и добавлять новую к началу

+1

Что вы пробовали? –

+3

Пожалуйста, прочитайте http://stackoverflow.com/help/how-to-ask – vels4j

+0

LinkedHashMap там для ограничения. Но это тип карты one.I нужен Тип списка один. – Prabhath

ответ

1

Если я правильно понимаю ваш вопрос, то реализация java.util.Deque (java.util.ArrayDequeue например) может быть тем, что вы ищете. Это очередь с двойным завершением и позволяет вам нажимать/поп-элементы на обоих концах. Поэтому вы можете использовать «addFirst», чтобы поместить новый элемент в dequeue и «removeLast», чтобы удалить самый старый элемент.

1

это выглядит как школьный проект, но я советую только что-то Об этой теме.

Найти алгоритм очереди в Википедии и реализовать это на Java. Используйте pop и push methdods.

Во-вторых, используйте итерацию в очереди и значение обновления.

+0

Я спрашиваю, какие текущие реализации у нас есть, как проект Guava. У нас есть такие. – Prabhath

Смежные вопросы