Angenommen, ich habe eine ArrayList mit Objekten der Größe n. Jetzt möchte ich ein anderes Objekt an einer bestimmten Position einfügen, beispielsweise an der Indexposition k (größer als 0 und kleiner als n), und ich möchte, dass andere Objekte an und nach der Indexposition k eine Indexposition nach vorne verschieben. Gibt es also eine Möglichkeit, dies direkt in Java zu tun? Eigentlich möchte ich die Liste sortiert halten, während ich ein neues Objekt hinzufüge.
78
add()
optional ist. Dies bedeutet, dass nicht alle Java-Implementierungen vonArrayList
oderList
Objekte im Allgemeinen diese Methode unbedingt unterstützen.Hier ist das einfache Beispiel für eine Arrayliste zum Einfügen in einen bestimmten Index
ArrayList<Integer> str=new ArrayList<Integer>(); str.add(0); str.add(1); str.add(2); str.add(3); //Result = [0, 1, 2, 3] str.add(1, 11); str.add(2, 12); //Result = [0, 11, 12, 1, 2, 3]
quelle
Beachten Sie, dass Sie beim Einfügen in eine Liste an einer Position tatsächlich an einer dynamischen Position innerhalb der aktuellen Elemente der Liste einfügen . Siehe hier:
http://tpcg.io/0KmArS
package com.tutorialspoint; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { // create an empty array list with an initial capacity ArrayList<Integer> arrlist = new ArrayList<Integer>(5); // use add() method to add elements in the list arrlist.add(15, 15); arrlist.add(22, 22); arrlist.add(30, 30); arrlist.add(40, 40); // adding element 25 at third position arrlist.add(2, 25); // let us print all the elements available in list for (Integer number : arrlist) { System.out.println("Number = " + number); } } }
quelle
Tatsächlich ist der Weg, dies bei Ihrer spezifischen Frage zu tun,
arrayList.add(1,"INSERTED ELEMENT");
wo 1 die Position istquelle
Sie müssen ArrayIndexOutOfBounds selbst bearbeiten, wenn Sie zu einer bestimmten Position hinzufügen.
Der Einfachheit halber können Sie diese Erweiterungsfunktion in Kotlin verwenden
/** * Adds an [element] to index [index] or to the end of the List in case [index] is out of bounds */ fun <T> MutableList<T>.insert(index: Int, element: T) { if (index <= size) { add(index, element) } else { add(element) } }
quelle
Zum Beispiel:
Ich möchte das Element in der ArrayList vom 23. auf den 1. Platz (Index == 0) verschieben, also setze ich das 23. Element auf einen temporären Wert und entferne es aus der Liste und füge es auf den 1. Platz in der Liste ein. Es hat funktioniert, aber nicht effizienter.
List<ItemBean> list = JSON.parseArray(channelJsonStr,ItemBean.class); for (int index = 0; index < list.size(); index++) { if (list.get(index).getId() == 23) { // id 23 ItemBean bean = list.get(index); list.remove(index); list.add(0, bean); } }
quelle
Diese Methode Hängt das angegebene Element an das Ende dieser Liste an.
add(E e) //append element to the end of the arraylist.
Diese Methode Fügt das angegebene Element an der angegebenen Position in diese Liste ein.
void add(int index, E element) //inserts element at the given position in the array list.
Diese Methode Ersetzt das Element an der angegebenen Position in dieser Liste durch das angegebene Element.
set(int index, E element) //Replaces the element at the specified position in this list with the specified element.
quelle