Guten Tag!
Ich habe eine Übungsaufgabe vor mir, mit der ich Probleme habe. Ich soll aus einem Array ein Element löschen und anschließend die folgenden Elemente um eine Position nach vorne verschieben, so dass das gelöschte Element immer am Ende steht.
Bis jetzt habe ich folgendes gemacht:
Ich hatte das jetzt irgendwie so geplant, dass in das 2. Array alle Elemente kopiert werden, die nicht null sind und anschließend wird das letzte Element auf null gesetzt, so wie es in der Aufgabenstellung gewünscht ist.
Allerdings scheint das so nicht zu funktionieren, das neue Array kriegt immer auch das "null"-Element reinkopiert. Funktioniert die if-Abfrage so nicht? Bzw. ist mein Ansatz überhaupt zu gebrauchen? Freue mich über jede Hilfe
Grüße
Ich habe eine Übungsaufgabe vor mir, mit der ich Probleme habe. Ich soll aus einem Array ein Element löschen und anschließend die folgenden Elemente um eine Position nach vorne verschieben, so dass das gelöschte Element immer am Ende steht.
Bis jetzt habe ich folgendes gemacht:
Code:
public static void delete(int x, Object[] y) {
y[x] = null; //das gewünschte Element wird "gelöscht"
Object[] temp = new Object[y.length];
for (int i = 0; i < temp.length-1; i++) {
if (y[i] != null) {
y[i] = temp[i];
}
}
temp[temp.length - 1] = null;
}
Ich hatte das jetzt irgendwie so geplant, dass in das 2. Array alle Elemente kopiert werden, die nicht null sind und anschließend wird das letzte Element auf null gesetzt, so wie es in der Aufgabenstellung gewünscht ist.
Allerdings scheint das so nicht zu funktionieren, das neue Array kriegt immer auch das "null"-Element reinkopiert. Funktioniert die if-Abfrage so nicht? Bzw. ist mein Ansatz überhaupt zu gebrauchen? Freue mich über jede Hilfe
Grüße