-
Gesamte Inhalte
3 -
Benutzer seit
-
Letzter Besuch
Reputationsaktivitäten
-
peov hat eine Reaktion von Whiz-zarD erhalten in Array auf Leerstellen prüfen
Moin!
Ein Array ist eine Datenstruktur mit fester Größe. Das Hinzufügen und (vollständige) Entfernen (=nicht Überschreiben) von Objekten ist "teuer", da ein neues Array erzeugt werden muss. Insofern ist dein Vorgehen mit dem Erstellen eines neuen Artikel[] schon korrekt.
Eine Möglichkeit, die du umsetzen könntest, wäre wie folgt:
Erzeuge ein neues, leeres Artikel[] Iteriere per for-Schleife (Zählerschleife - den Zähler brauchst du als Index, dann kannst du dir auch temp sparen) über dein existierendes Array Wenn das aktuelle Objekt dem zu löschenden Artikel entspricht, dann ignoriere es (continue;) (vielleicht hat die Artikel-Klasse ja eine gute equals()-Implementierung? Vorschlag: equals() implementieren mit Artikelnummer als Vergleichsfaktor. Wenn du dabei Unterstützung brauchst, sag Bescheid) Wenn nicht, dann füge das aktuelle Objekt dem neuen Artikel[] hinzu Gib nach Durchlaufen der Schleife das Neue, nun mit allen außer dem zu löschenden Artikel gefüllte Artikel[], zurück. Wenn die Aufgabenstellung nun darauf ausgelegt ist, Leerstellen im Array zu finden (Sprich: Die eigentliche Löschfunktionalität ist schon vorgegeben und [ A1; A2; 0 ;A4;A5] ist der Input für die Methode, die du schreiben sollst), kannst du genauso vorgehen, bis darauf, dass du überprüfst, ob das Objekt, an dem du in deiner Schleife gerade bist, 0 ist (oder 0 als Artikelnummer hat oder was auch immer).
2 Schleifen sind meiner Meinung nach hier vollkommen überflüssig.
Ich hab eine kleine Bonusaufgabe für dich: Welche Datenstruktur wäre für die Abbildung von diesem Fall besser geeignet als ein Array? :)
Viele Grüße
peov
-
peov hat eine Reaktion von xFiSiRaZx erhalten in Array auf Leerstellen prüfen
Moin!
Ein Array ist eine Datenstruktur mit fester Größe. Das Hinzufügen und (vollständige) Entfernen (=nicht Überschreiben) von Objekten ist "teuer", da ein neues Array erzeugt werden muss. Insofern ist dein Vorgehen mit dem Erstellen eines neuen Artikel[] schon korrekt.
Eine Möglichkeit, die du umsetzen könntest, wäre wie folgt:
Erzeuge ein neues, leeres Artikel[] Iteriere per for-Schleife (Zählerschleife - den Zähler brauchst du als Index, dann kannst du dir auch temp sparen) über dein existierendes Array Wenn das aktuelle Objekt dem zu löschenden Artikel entspricht, dann ignoriere es (continue;) (vielleicht hat die Artikel-Klasse ja eine gute equals()-Implementierung? Vorschlag: equals() implementieren mit Artikelnummer als Vergleichsfaktor. Wenn du dabei Unterstützung brauchst, sag Bescheid) Wenn nicht, dann füge das aktuelle Objekt dem neuen Artikel[] hinzu Gib nach Durchlaufen der Schleife das Neue, nun mit allen außer dem zu löschenden Artikel gefüllte Artikel[], zurück. Wenn die Aufgabenstellung nun darauf ausgelegt ist, Leerstellen im Array zu finden (Sprich: Die eigentliche Löschfunktionalität ist schon vorgegeben und [ A1; A2; 0 ;A4;A5] ist der Input für die Methode, die du schreiben sollst), kannst du genauso vorgehen, bis darauf, dass du überprüfst, ob das Objekt, an dem du in deiner Schleife gerade bist, 0 ist (oder 0 als Artikelnummer hat oder was auch immer).
2 Schleifen sind meiner Meinung nach hier vollkommen überflüssig.
Ich hab eine kleine Bonusaufgabe für dich: Welche Datenstruktur wäre für die Abbildung von diesem Fall besser geeignet als ein Array? :)
Viele Grüße
peov