dommes89 Geschrieben 13. März 2009 Teilen Geschrieben 13. März 2009 Hallo.. Und zwar ein ganz einfaches Beispiel für mein Problem: Ich habe einen Array: string[0] = bla string[1] = bla string[2] = bla string[3] = bla string[4] = bla Jetzt wird der array bei index 2 beispielsweise rausgelöscht... string[0] = bla string[1] = bla string[2] = NULL string[3] = bla string[4] = bla Wie bekomme ich es nun hin, dass alle stellen die dahinter sin nach oben aufrücken? ==>> string[0] = bla string[1] = bla string[2] = bla string[3] = bla string[4] = NULL Hoffe mir kann da jemand weiterhelfen... Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 13. März 2009 Teilen Geschrieben 13. März 2009 Hallo, z. B. so. for (int i = geloesche_stelle; i< string.length i++) string[i] = string[i+1]; string[string.length] = NULL; [/code] Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 13. März 2009 Teilen Geschrieben 13. März 2009 Ich würde anstatt des statischen Arrays eine Arraylist o.ä. einsetzen, da werden die gewünschten Funktionen unterstützt siehe: ArrayList (Java 2 Platform SE v1.4.2) Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
VaNaTiC Geschrieben 13. März 2009 Teilen Geschrieben 13. März 2009 Wie flashpixx schon sagte gibt es dafür Container-Klassen. Wenn Du das damit machen kannst/darfst, dann würde ich in diesem Fall allerdings eine LinkedList vorschlagen, denn in der verketteten Liste von Einträgen ist sehr viel performanter einzelne Elemente in der Mitte ein- oder auszutragen. Es gibt aber natürlich für die diversen Anwendungsfälle verschiedene Container-Klassen. Einfach mal nachlesen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
speedi Geschrieben 16. März 2009 Teilen Geschrieben 16. März 2009 Wenn du einen Eintrag (x) im array löschst musst danach einfach die Einträge mit höherem index um 1 verschieben. Das kann man z.B. mit einer for-Schleife machen. for(int zähler = x+1; x < array.length; zähler++){ array[zähler-1] = array[zähler]; } array[length-1] = null; Wenn du jedoch so etwas häufiger machst wäre es besser anstatt mit Arrays mit verketteten Listen zu arbeiten. Also z.B. LinkedList. Auch bei einer ArrayList müssen beim löschen alle weiteren Einträge verschoben werden. Das kostet leider schon ein bisschen was an Zeit und Rechenleistung. Bei einer LikedList hingegen muss lediglich eine Referenz verändert werden. Nachteil von verketteten Listen ist der Zugriff auf einen bestimmten Eintrag. Wenn man die Listen nicht grade sequentiell liest muss immer die gesamte Liste bis zum Eintrag (x) durchlaufen werden. Natürlich nimmt dir bei einer LinkedList die Java-API diesen Aufwand ab, aber im Hintergrund passiert das natürlich trotzdem. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dommes89 Geschrieben 16. März 2009 Autor Teilen Geschrieben 16. März 2009 habe es nun mit der for variante hinbekommen... das reicht in meinem fall danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.