2016-12-04 5 views
-1

Ich schreibe eine Methode, damit der Benutzer ein Element im Array entfernen kann. Nach dem Entfernen möchte ich das Array so umsortieren, dass es dazwischen keine leeren Lücken mehr gibt.Entfernen eines Arrays und Umsortieren des Inhalts

Hier ist mein Code:

public void remove(int position) 
{ 
    if (position > currentCartSize) 
    { 
     System.out.println("Error! Nothing to remove."); 
    } 
    else if (isEmpty()) 
    { 
     System.out.println("Error! Cart is empty."); 
    } 
    else 
    { 
     cart[position - 1] = null; 
     currentCartSize--; 
    } 
    for (int i = 0; i < currentCartSize; i++) 
    { 
     for(int j = 1; j < i; j++) 
     { 
      cart[j] = cart[i]; 
     } 
    } 
} 
+0

Was ist die Frage? – Einar

+1

Warum verwenden Sie an erster Stelle ein Array anstelle einer 'Liste'? – hotzst

+0

Ich bin nicht vertraut mit der Liste, noch nie zuvor verwendet. – Jake0991

Antwort

2

Versuchen Sie stattdessen, ein ArrayList-Objekt zu implementieren, wo Sie die array.remove (int Position) -Methode direkt verwenden können.

"Die Methode java.util.ArrayList.remove (int index) entfernt das Element an der angegebenen Position in dieser Liste. Verschiebt alle nachfolgenden Elemente nach links (subtrahiert eins von ihren Indizes)". Hoffe es hilft!

1

Ich würde vorschlagen, nicht Werte aus einem einfachen ol‘Array entfernen. Ich schlage vor, eine ArrayList zu verwenden, Sie können Elemente nahtlos entfernen, ohne dass es Lücken gibt, und sie sind einfacher zu handhaben als Arrays. Viel Glück :)

+0

Ich habe die ArrayList nie benutzt und es ist das erste Mal, dass ich davon höre. – Jake0991

+0

Verwenden einer Array-Liste ist ziemlich einfach: Alles, was Sie tun müssen, um es zu entfernen, verwenden Sie die Methode entfernen, so zum Beispiel eine Arraylist wie folgt deklarieren: ArrayList a = new ArrayList (); dann fügst du Werte wie folgt hinzu: a.add (1); a.add (2) etc usw. Dann würdest du einen bestimmten Wert wie folgt entfernen: a.remove (1) und er würde den Wert 1 aus der Arraylist entfernen und Alles was übrig wäre ist 2 – Aaron

+1

@ Jake0991 dann ist es Zeit, darüber zu lernen. Sie sollten das beste Werkzeug für jeden Job verwenden, und ein Array ist hier definitiv die falsche Lösung. –

Verwandte Themen