Hinzufügen von Elementen zu ArrayList an einer Position, die größer als die aktuelle Größe istJava

Java-Forum
Anonymous
 Hinzufügen von Elementen zu ArrayList an einer Position, die größer als die aktuelle Größe ist

Post by Anonymous »

Derzeit verwende ich eine ArrayList, um eine Liste von Elementen zu speichern, wobei ich neue Elemente an bestimmten Positionen einfügen muss. Ich muss Elemente an einer Position eingeben, die größer als die aktuelle Größe ist. Zum Beispiel:

Code: Select all

ArrayList arr = new ArrayList();
arr.add(3,"hi");
Jetzt weiß ich bereits, dass es eine OutOfBoundsException geben wird. Gibt es eine andere Möglichkeit oder ein anderes Objekt, mit dem ich dies tun und gleichzeitig die Ordnung einhalten kann? Das liegt daran, dass ich Methoden habe, die Elemente anhand ihres Indexes finden. Zum Beispiel:

Code: Select all

ArrayList arr = new ArrayList();
arr.add("hi");
arr.add(0,"hello");
Ich würde erwarten, „hi“ jetzt bei Index 1 statt bei Index 0 zu finden.

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
Ich habe mir Array JavaList zum Hinzufügen von Elementen außerhalb der aktuellen Liste angesehen size sowie HashMap, aber HashMap erfüllt nicht mein zweites Kriterium. Für jede Hilfe wären wir sehr dankbar.



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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post