Veröffentlicht 13. März 200916 j 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ß
13. März 200916 j Hallo, z. B. so. for (int i = geloesche_stelle; i< string.length i++) string[i] = string[i+1]; string[string.length] = NULL; [/code] Frank
13. März 200916 j 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
13. März 200916 j 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.
16. März 200916 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.