Schwierigkeiten beim Aufrücken von Arrays

sdfax11

Mitglied
Hallo,

ich wollte das mein Array "Warteliste" nach oben aufrückt habe jedoch nicht verstanden, was da passiert und bekomme eine java.lang.ArrayIndexOutOfBoundsException.
Ziel: Ich storniere Position 3 im Objekt-Array und will die Lücke schließen.

Java:
public class Benutzer
Warteliste[] Warteliste = new Warteliste [25];
int freierPlatz = 0;

public void reservieren (Warteliste warteListe){
 this.Warteliste[freierPlatz] = warteListe;
   freierPlatz++;
}

public void ruckeauf (){
      for (int i = 0; i < this.Warteliste.length;i++){
        
            int j = i+1;
            this.Warteliste[i] = this.Warteliste[j];
            System.out.println(this.Warteliste[i]);
            }    
    }
 
Zuletzt bearbeitet:
Also in dem Code scheinen erst einmal die Klassen {} zu fehlen ?

Zu deinem Problem: die Variable j nimmt den Wert i+1 an, was in dem Fall, wenn i schon den Wert der letzten Position hat, eben außerhalb des Arrays ist 😉

Zudem wäre ein Stack hier, mMn, ein guter Ersatz für eine Warteliste 😛
 
Aso, wie kann ich es denn machen, dass ich nur eine begrenzte Anzahl schiebe (entweder rauf oder runter), damit die Lücke geschlossen wird?
 
Du musst prüfen, ob j schon über #length() ist, wenn ja, dann aufhören.
Zudem solltest du bei der Lücke anfangen zu zählen, sonst überschreibst du den 0. mit dem 1., wenn die Lücke z.B. bei Index 4 ist.
 
Vielen Dank, ja aber woher weiß ich denn wo die Lücke entstanden ist? Ansonsten habe ich ja Schwierigkeiten dem zu sagen, das er da anfangen soll. Ich hab zuvor das Array befüllt, wie komme ich dahin, dass er mir beim runterzählen den freienPlatz der jeweiligen Position anzeigt.
 
oder einfach nur bis i<array.length-1 🙂
Ist doch eine Methode des Prüfens ;D Also eine Bedingung, im Schleifenkopf.
Vielen Dank, ja aber woher weiß ich denn wo die Lücke entstanden ist?
Was ist den für dich eine Lücke? Irgendwas wird ja dort drin sein. Du kannst sie ja auch markieren, also einen bestimmten Wert dort einfügen, sodass du den Index schnell ausfindig machen kannst.
 

Neue Themen


Zurück
Oben