Code: Select all
ArrayList arr = new ArrayList();
arr.add(3,"hi");
Code: Select all
ArrayList arr = new ArrayList();
arr.add("hi");
arr.add(0,"hello");
Zusammenfassend lässt sich sagen, dass es, abgesehen vom manuellen Einfügen von Nullen in die dazwischen liegenden Elemente, eine Möglichkeit gibt, diese beiden Anforderungen zu erfüllen:
- Elemente an einer Position einfügen, die größer als die aktuelle Größe ist
- Vorhandene Elemente nach rechts verschieben, wenn ich Elemente in der Mitte der Liste einfüge
P.S. Die Leistung ist im Moment kein wirkliches Problem.
UPDATE: Es gab einige Fragen dazu, warum ich diese besonderen Anforderungen habe, weil ich an der operativen Transformation arbeite, bei der ich eine Reihe von Operationen beispielsweise in meine Liste (eine mathematische Formel) einfüge. Jede Operation enthält eine Zeichenfolge. Wenn ich Zeichenfolgen in meine Liste einfüge/lösche, aktualisiere ich die nicht angewendeten Vorgänge (falls erforderlich) dynamisch durch die Verfolgung jeder bereits angewendeten Operation. Meine aktuelle Lösung besteht nun darin, eine Unterklasse von ArrayList zu verwenden und einige der Methoden zu überschreiben. Ich würde jedoch gerne wissen, ob es eine elegantere Möglichkeit gibt.
Mobile version