Java : Warum gibt es so viele Queues? Welche soll ich nehmen?

... komplette Frage anzeigen

3 Antworten

Besondere Optimierungen kann ich mir da jetzt nicht unbedingt vorstellen; du brauchst schließlich mindestens eine einfach verkettete Liste, wo du neue Objekte hinten anhängst und vorne abgreifst. Eine Queue nach java.util.Queue ist da von der Komplexität her nicht ideal; wenn du wirklich nur FIFO willst, solltest du deine eigene Liste implementieren (einfach verkettet). Sie könnte etwa so aussehen:

interface FIFO<T>
{
    public T pop();
    public void push(T t);
}

Zur Implementierung: Du brauchst noch eine weitere Klasse, die ein Element in der Liste repräsentiert:

class FIFOElement<T>
{
    T value;
    FIFOElement next;
}

In deiner Listen-Klasse musst du dann, wenn ein neues Element eingefügt wird, ein Objekt dieser Klasse anlegen und die Referenz darauf im bisher letzten Element speichern. Dazu reicht es, wenn du eine Referenz auf das erste Element speicherst und solange auf das next-Element gehst, bis dieses den Wert null hat. Da fügst du dann dein neues Element ein.

Antwort bewerten Vielen Dank für Deine Bewertung

LinkedList ist das was du suchst. Die Klasse ist nicht abstract.

Mit add fügst do hinten an, mit remove nimmst du vorne weg, die anderen Methoden ignorierst du.

Da muss man sich nichts selber basteln.

push und pop sind die Standardoperationen für einen Stack (Last In First Out, LIFO, Veränderungen nur an einem Ende

PriorityQueue verwaltet zusätzlich Prioritäten (VIPs dürfen sich vordrängeln)

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?