2016-04-20 7 views
0

Ich arbeite gerade an einer Hausaufgabe. Ich soll eine Deque einrichten, die leicht genug ist, aber ich soll auch von vorne löschen, die Anordnung muss wie eine Deque funktionieren. Mein Problem ist, dass es aus irgendeinem Grund nicht funktioniert. Hier ist die Methode, die ich von der Front löschen erstellt:Kann nicht von vorne löschen

public Object deleteFromFront(Object e) 
{ 
    Object[] temp = new Object[capacity]; 
    for(int i = 1; i < size() - 1; i++){ 
     temp[i] = A[i+1]; 
    } 
    for(int i = 0; i < size() - 1; i++) 
    { 
     A[i] = temp[i]; 
    } 
    A = temp; 
    return A; 
} 

Das Denken ist, dass ich eine temporäre Array zu erstellen, in dem das anderen Array hinein bewegt werden, beginnend an Position 1. Als solches wird es ignoriert die erst eine, also beginnend mit der zweiten. Jedoch, wenn ich dies tue, scheint es nicht das erste zu löschen. Kann mir jemand sagen, was ich vermisse? Danke vielmals!

+0

Betrachten Sie "System.arraycopy". Ordnen Sie das neue Array dem Wert 1 unter dem aktuellen Wert zu, und starten Sie dann den Wert src mit 1, dst mit 0. Setzen Sie den aktuellen Wert auf den neuen zurück. Stellen Sie sicher, dass Sie überhaupt keine Elemente gefunden haben. – KevinO

+0

Was ist der Parameter "Objekt e"? – khandelwaldeval

+0

(da dies eine Heimarbeit ist) Versuchen Sie das Debugging mit IDE zu durchlaufen. Informieren Sie sich auch über Komponententests. – Jayan

Antwort

0

Ihre Lösung scheint nicht richtig zu sein.

  1. Was ist die Verwendung von Object e?

  2. Was ist A? Ist es ein Array von Objekttyp? Ist das in der Methode deklariert?

+0

1. Objekt e war nur eine temporäre Variable, die ich dort hatte, um etwas hineinzugeben. Bei früheren Aufgaben hatte ich bemerkt, dass ich etwas dort haben musste, während ich etwas übergab, also dachte ich mir, dass ich diesmal könnte. 2. Was A betrifft, hätte ich geklärt, das ist die Deque selbst. Ich bin nicht kreativ, deshalb habe ich mich für den Deque-Namen entschieden. – Vaak