Collections Queue mittels ArrayList

prixgarantie

Neues Mitglied
Hallo Leute

Ich versuche nun schon seit längerer Zeit, mittels ArrayList eine Queue zu implementieren. Um einen neuen Wert zu speichern habe ich den Befehl .add(position, Wert) verwendet. Die Werte sollten also an einem bestimmten Ort gespeichert werden. Wenn ich nun beispielsweise drei Werte an den Orten 0-2 speichere und anschliessend den Wert auf 0 wieder lösche, sind die beiden verbleibenden Werte plötzlich auf 0 und 1 statt auf 1 und 2 gespeichert. Was mache ich wohl falsch?

Vielen Dank

Hier noch der Code:

Java:
import java.util.ArrayList;

public class Queue1
{
    private int size;
    private int head=0;  //Anfang
    private int tail=0;  //Ende
    private ArrayList <String> queue;

    public Queue1(int s)
    {
        queue = new ArrayList <String>();
        size = s;
    }

    public Queue1()
    {
        queue = new ArrayList <String>();
        size = 3;
    }

    public void enqueue(String o)
    {

        if (queue.size()<size)
        {
            queue.add(tail, o);
            tail++;
            if(tail == size)
            {
                tail = 0;
            }
        }
        else
        {
            System.out.println("Es hat keinen Platz mehr in der Queue!");
        }

        // Fügt x am Ende in die Warteschlange ein,
        // falls die Warteschlange nicht voll ist;
    }

    public String dequeue() 
    {
       int a;
       
        if (!queue.isEmpty())
        {
           a = head;
           head ++;
           if (head > size)
           {
            head = 0;   
            }
           return (queue.remove(a));
        }
        else
        {
            return ("Queue ist leer!");
        }
        // Entfernt das erste Element aus der Warteschlange,
        // falls die Warteschlange nicht leer ist;

    }

    public boolean isEmpty()
    {
        return(queue.isEmpty());
        //liefert true genau dann, wenn die Warteschlange kein Element enthält
    }

    public boolean isFull()
    {
        return(queue.size() == size);
        //liefert true genau dann, wenn die Warteschlange voll ist
    }

    public void clear()
    {
        queue.clear();
        head = 0;
        tail = 0;
    }
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Gar nichts. Es macht ja auch Sinn... In ArrayList werden wie Werte von 0 bis Ende gespeichert, ohne Lücken. Für dein Vorhaben ist es sogar besser. So musst du immer nur das 0. Element zurückgeben und es löschen. Das nächste Element, welches wegfliegen soll (falls vorhanden) rutscht automatisch an die 0. Stelle nach.
 

tagedieb

Top Contributor
Die Parameter size, head und tail mach eigentlich nur Sinn wenn du intern ein String[] array verwendest.
Bei einer ArrayList werden diese Parameter ja schon intern verwaltet und du implementierst es doppelt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Vererbung Queue bestehend aus Superclass- und Subclass-Objekten Java Basics - Anfänger-Themen 7
B Zahlenfolge von Queue in Stack Java Basics - Anfänger-Themen 29
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
P Priority Queue Performance Java Basics - Anfänger-Themen 3
Chabub Hilfe bei Stacks und Queue Java Basics - Anfänger-Themen 2
G Stack und Queue Arbeitsblatt Java Basics - Anfänger-Themen 3
F Queue zyklisch Java Basics - Anfänger-Themen 8
D Queue vs. Stack Java Basics - Anfänger-Themen 6
L Queue mithilfe von 2 Stacks erstellen Java Basics - Anfänger-Themen 1
B Automatisierung von Jobs / @EJB Scheduler / Verhinderung, dass Queue überläuft Java Basics - Anfänger-Themen 2
A Priority Queue / Comparator Java Basics - Anfänger-Themen 6
J Queue Warteschlange Java Basics - Anfänger-Themen 3
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
Y Unendlicher Ringbuffer (Queue) Java Basics - Anfänger-Themen 49
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
E Stack vs Queue - Gemeinsamkeiten / Unterschiede Java Basics - Anfänger-Themen 7
H Collections StackOverflowError in einer Queue Java Basics - Anfänger-Themen 3
R Klassen Die lineare Datenstruktur Queue Java Basics - Anfänger-Themen 3
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
K Queue enq Fehler Java Basics - Anfänger-Themen 2
F Thread der auf eine Queue wartet, sicher beenden Java Basics - Anfänger-Themen 4
A Queue (Array) leeren Java Basics - Anfänger-Themen 1
F HTTP Get Queue Java Basics - Anfänger-Themen 7
J Queue zyklisch auslesen Java Basics - Anfänger-Themen 4
B Generische Queue programmieren Java Basics - Anfänger-Themen 5
T Priority-Queue Java Basics - Anfänger-Themen 9
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
P Array queue problem Java Basics - Anfänger-Themen 1
L Queue programmieren via BlueJ Java Basics - Anfänger-Themen 5
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
I Erste Schritte Queue Java Basics - Anfänger-Themen 14
G Queue auf einer Seite löschen, andre Seite schreiben Java Basics - Anfänger-Themen 3
G Queue mit int oder float Java Basics - Anfänger-Themen 3
Q queue.remove Element trotzdem noch vorhanden. Java Basics - Anfänger-Themen 10
P Priority Queue Java Basics - Anfänger-Themen 6
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
S Fehler beim Auslösen des ActionListeners in Verbindung mit einer Queue Java Basics - Anfänger-Themen 5
B Queue mit Daten aus einem Stack füllen Java Basics - Anfänger-Themen 21
T Collections Queue<? extends Number> add() offer() Java Basics - Anfänger-Themen 13
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
R NullPointerException in Queue-Implementierung Java Basics - Anfänger-Themen 11
B Queue problem! Java Basics - Anfänger-Themen 2
R Queue abhören und Message in Browser ausgeben Java Basics - Anfänger-Themen 3
T Erstellung von Queue mit verkketten listen Java Basics - Anfänger-Themen 3
kulturfenster Stack / Queue Implementationen Java Basics - Anfänger-Themen 11
K Priority Queue - wo ist denn jetzt der Vorteil? Java Basics - Anfänger-Themen 7
W Iterator in Queue Java Basics - Anfänger-Themen 5
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
H Stack und Queue Java Basics - Anfänger-Themen 6
M Threadsichere Queue in Java 1.5? Java Basics - Anfänger-Themen 2
G Int-Queue in String-Queue umwandeln Java Basics - Anfänger-Themen 5
A Queue erweitern Java Basics - Anfänger-Themen 13
P Queue, Stacks, Listen Java Basics - Anfänger-Themen 7
S Queue als Array implementiert get()? Java Basics - Anfänger-Themen 4
S Queue als verkettete Liste Java Basics - Anfänger-Themen 9
S Queue Java Basics - Anfänger-Themen 30
K Prüfen, ob Queue leer ist Java Basics - Anfänger-Themen 5
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
B Race Condition mittels Semaphore verhindern Java Basics - Anfänger-Themen 13
B Dom Manipulationen mittels Java Java Basics - Anfänger-Themen 8
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
Poppigescorn Arrayliste Mittels Scanner erweitern Java Basics - Anfänger-Themen 6
TimoN11 Quadratwurzel mittels Funktionswert der Quadratfunktion Java Basics - Anfänger-Themen 9
Khaled-Abo Ziffern unterscheiden mittels einer For-Schleife Java Basics - Anfänger-Themen 6
L Quadratwurzelrechnung mittels Heron-Verfahren Java Basics - Anfänger-Themen 6
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
V Erste Schritte Potenzen b^n mittels Schleife ermitteln Java Basics - Anfänger-Themen 7
S XML mittels HTTP Get Anfrage Java Basics - Anfänger-Themen 4
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
P Liste mit Lücken mittels Filter aggregieren Java Basics - Anfänger-Themen 7
M Methoden Mittelwert rationaler Zahlen mittels Methode Java Basics - Anfänger-Themen 4
P Klassen In einer Autoklasse das Objekt Auto mittels Collection Speichern Java Basics - Anfänger-Themen 4
M Fibonacci rekursiv mittels Cache Java Basics - Anfänger-Themen 17
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
A JavaScript Object Notation einbinden mittels Maven Java Basics - Anfänger-Themen 7
L Liste mittels Stack implementieren Java Basics - Anfänger-Themen 0
J OOP GUI-Einstellungen mittels Preferences Java Basics - Anfänger-Themen 0
J ComboBox mittels neuer Methode befüllen Java Basics - Anfänger-Themen 3
A Android-Lib: Sourcecode Generator mittels Annotation Processing Java Basics - Anfänger-Themen 0
W Erste Schritte Exceltabelle in Datenbank übertragen mittels XDEV Java Basics - Anfänger-Themen 7
L Histogram mittels Schleifen und Arrays Java Basics - Anfänger-Themen 9
S Klassen Tiefe Kopie mittels Kopierkonstruktor Java Basics - Anfänger-Themen 6
S Columnindex mittels Columnname herrausfinden Java Basics - Anfänger-Themen 6
M Explorer oeffnen mittels java.awt.Desktop Java Basics - Anfänger-Themen 18
Dogge URL-Ausgabe/Verarbeitungsproblem mittels einer Applikation Java Basics - Anfänger-Themen 2
H Methoden Array aus Punkten erzeugen, mittels Punkt-Klasse Java Basics - Anfänger-Themen 5
S Dateien mittels Path(s) kopieren und umbenennen. Java Basics - Anfänger-Themen 4
C Dynamische (AJAX) Inhalte einer Webseite mittels Java auslesen Java Basics - Anfänger-Themen 2
N Mittels For Schleife Klasse erzeugen Java Basics - Anfänger-Themen 32
B Abfrage mittels Variable vereinfachen Java Basics - Anfänger-Themen 6
D Klassen Zeichnen von Figuren mittels vorgegebener Klasse Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben