2016-08-07 32 views
6

Jaka jest różnica między nimi? Wiem, że kolejka jest zaprojektowana tak, aby elementy były wstawiane na końcu kolejki, a elementy usunięte z początku kolejki. Gdzie jako wycofana reprezentuje kolejkę, w której można wstawiać i usuwać elementy z obu końców kolejki.Kolejka kontra Dequeue w java

Ale które jest bardziej wydajne?

Plus jaka jest różnica między nimi dwoma? ponieważ mam trochę wiedzy na ich temat, co powiedziałem powyżej, ale chciałbym dowiedzieć się więcej na ich temat. Będzie to docenione.

+0

Samouczek może być przydatny. –

+1

Wydajność na co? –

+0

Widziałem już javadoc, ale wciąż nie dostałem dużo. więc dlatego zapytałem tutaj, czy ktoś może mi pomóc ... –

Odpowiedz

3

Kolejka i kolejka to abstrakcyjne typy danych, które można implementować na różne sposoby. Aby porozmawiać o wydajności, musisz określić, które implementacje chcesz porównać i jakie operacje są ci potrzebne. Jeszcze lepiej, wykonaj test porównawczy z obciążeniem aplikacji i środowiskiem, z którego będziesz korzystać (sprzęt, system operacyjny, wersja JVM).

Ponieważ każdy deque jest także kolejką, ogólnie rzecz biorąc można powiedzieć, że deques mogą być co najwyżej tak dobre, jak kolejki.

14

Deque jest skrótem od "double ended queue". W zwykłej kolejce dodajesz rzeczy do jednego końca i przenosisz je z drugiego. W przypadku kolejki podwójnie zakończonej możesz dodawać elementy do obu końców i wybierać je z obu końców. To sprawia, że ​​jest bardziej uniwersalny; na przykład, jeśli chcesz, możesz użyć go jako stosu.

Pod względem wydajności to naprawdę zależy od wdrożenia. Ale ogólnie rzecz ujmując, nie spodziewałbyś się, że kolejka wypadnie lepiej niż kolejka, ponieważ kolejka (pojedynczo zakończona) może być zaimplementowana w sposób, który nie pozwala na dodawanie lub usuwanie obiektów na "złym" końcu. Podczas gdy każda implementacja deque działałaby również jako implementacja kolejki.