2016-06-28 1 views
-6

ich eine Arraylist mit 500 null Ganzen Zahlen darin zu schaffen, so kann ich einen Wert hinzufügen, in welcher auch immer Position Ich möchte:Variable in die falsche Position gehen in Arraylist

ArrayList<Integer> array = new ArrayList<>(); 
array.addAll(Arrays.asList(new Integer[500])); 

Mein Problem ist, wenn ich eine Integer hinzufügen in der 8. Position drückt es alle Ganzzahlen, die danach auf die nächste Position gehen. Beispiel: Ich habe eine Ganzzahl in Position 5 und eine andere in Position 8, wenn ich eine in Position 7 addiere, wird die in Position 8 auf Position 9 gesetzt. Dieser Effekt ruiniert meine Schleife.

Hinzufügen: array.add(position, mInt);

Kann jemand helfen?

+0

was ist mit dem, der bereits in Position 9 war? – Blackbelt

+0

Welches Verhalten würden Sie lieber sehen? Möchten Sie den Index "setzen" anstatt ihn zurück zu bewegen? – Zircon

+0

@Blackbelt bewegt sich auf 10. –

Antwort

2

Wenn Sie die Ganzzahl an einer gegebenen Position überschreiben möchten, verwenden Sie set(index, data) anstelle von add.

add ist, um Daten an Array-Zugabe, so wird es nicht ersetzen einen Austritt aus javadocs:

Inserts das angegebene Element an der angegebenen Position in dieser Liste (optional Betrieb). Verschiebt das Element, das sich momentan an dieser Position befindet (falls vorhanden) und alle nachfolgenden Elemente nach rechts (addiert eins zu ihren Indizes).

set ist für bestehende Daten in gegebenem Index mit neuen Daten zu ersetzen, von Javadoc-:

Ersetzt das Element an der angegebenen Position in dieser Liste mit dem angegebenen Elemente (optional Betrieb).

0

Mein Problem ist, wenn ich einen Integer in der 8. Position hinzuzufügen, drückt er all die ganzen Zahlen, dass, nachdem es in die nächste Position.

Diese exaclty ist, wie add() funktioniert:

Fügt das angegebene Element an der angegebenen Position in dieser Liste. Verschiebt das Element, das sich momentan an dieser Position befindet (falls vorhanden) und alle nachfolgenden Elemente nach rechts (addiert eins zu ihren Indizes).

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#add(int,%20E)

Wenn Sie Änderung anstelle wanto, verwenden set() statt:

Ersetzt das Element an der angegebenen Position in dieser Liste mit dem angegebenen Elemente.

Verwandte Themen