Что такое Java-эквивалент C ++ STL Queue? - PullRequest
5 голосов
/ 13 ноября 2010

Я просматривал Java-документы , чтобы найти Java-эквивалент для ST ++ Queue в C ++, но все, что я нашел, это интерфейс под названием Queue и куча реализаций, которые я не могу сделать головы или хвосты.

Есть ли в Java реализация для Queue, которая представляет собой просто структуру данных FIFO без добавленных наворотов? Мне нужны только операции enqueue, dequeue и front, а структура данных должна допускать дубликаты.

Ответы [ 5 ]

7 голосов
/ 13 ноября 2010

Queue будет работать.Используйте любую реализацию, которая вам нравится.LinkedList или ConcurrentLinkedQueue, например.

enqueue = offer(..)
dequeue = poll()
front = peek()

3 голосов
/ 13 ноября 2010

На этой странице документации перечислены все классы, которые реализуют интерфейс.Так, например, вы можете сделать следующее ( ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: рядом с компилятором не было ):

Queue<E> q = new LinkedList<E>();

E x1 = new E();
E x2 = new E();
E x3;

q.offer(x1);
q.offer(x2);

x3 = q.poll();
1 голос
/ 13 ноября 2010

Класс java.util.LinkedList - это, вероятно, то, что вам нужно, и методы будут "добавить", "удалить" и "элемент".

1 голос
/ 13 ноября 2010

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

0 голосов
/ 13 ноября 2010

То, что вы, вероятно, ищете, это двусторонняя очередь.См. Интерфейс Deque и его классы реализации.

...