Wie man ein Objekt in einer ArrayList an einer bestimmten Position einfügt

Lesezeit: 4 Minuten

Benutzer-Avatar
Harshveer Singh

Angenommen, ich habe eine ArrayList von Objekten der Größe n. Jetzt möchte ich ein weiteres Objekt an einer bestimmten Position einfügen, sagen wir an der Indexposition k (ist 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.

Benutzer-Avatar
CloudyMarble

Zu Einfügung Wert in ArrayList an einem bestimmten Index, verwenden Sie:

public void add(int index, E element)

Diese Methode verschiebt die nachfolgenden Elemente der Liste. Sie können jedoch nicht garantieren, dass die Liste sortiert bleibt, da das neue Objekt, das Sie einfügen, gemäß der Sortierreihenfolge möglicherweise an der falschen Position sitzt.


Zu ersetzen das Element an der angegebenen Position, verwenden Sie:

public E set(int index, E element)

Diese Methode ersetzt das Element an der angegebenen Position in der Liste durch das angegebene Element und gibt das vorherige Element an der angegebenen Position zurück.

  • aber ich denke, es wird das Objekt an dieser Indexposition ersetzen

    – Harshveer Singh

    16. August 2011 um 6:39 Uhr

  • @Harsh, eigentlich gibt es nichts zu bedenken – die Dokumentation ist ziemlich genau, was diese Methode tut download.oracle.com/javase/6/docs/api/java/util/…E)

    – denis.solonenko

    16. August 2011 um 7:02 Uhr

  • @Harsh zum Ersetzen können Sie set(int index, Object Obj) verwenden

    – geringe Wartezeit

    16. April 2012 um 19:02 Uhr

  • Was ist das Problem mit der Sortierung? “Das neue Objekt, das Sie einfügen, kann gemäß der Sortierreihenfolge an der falschen Position sitzen”. richtig … warum ist die Ordnung gestört? ps Java sabbert Ruby-Regeln

    – light24birnen

    28. Februar 2014 um 23:09 Uhr

  • Beachten Sie, dass add() ist optional, was bedeutet, dass nicht alle Java-Implementierungen von ArrayList Noch List Objekte im Allgemeinen werden diese Methode notwendigerweise unterstützen.

    – Verschränkte Schleifen

    15. Februar 2019 um 3:53 Uhr

Hier ist das einfache Arraylist-Beispiel zum Einfügen an einem 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]

  • Ich bevorzuge diese Antwort, weil sie die Ergebnisse des Anrufs/der Anrufe zeigt.

    – aroth

    27. September 2016 um 8:24 Uhr

Beachten Sie, dass Sie beim Einfügen in eine Liste an einer Position wirklich an a einfügen dynamische Stellung innerhalb der aktuellen Elemente der Liste. 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);
      }  
   }
}

$javac com/tutorialspoint/ArrayListDemo.java

$java -Xmx128M -Xms16M com/tutorialspoint/ArrayListDemo

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 15, Size: 0
    at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:661)
    at java.util.ArrayList.add(ArrayList.java:473)
    at com.tutorialspoint.ArrayListDemo.main(ArrayListDemo.java:12)

Benutzer-Avatar
Abdul Basit Rishi

Aus der offiziellen Dokumentation von Oracle

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 dieser 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.
      

      

Eigentlich ist der Weg, es auf Ihre spezielle Frage zu tun arrayList.add(1,"INSERTED ELEMENT"); wobei 1 die Position ist

Sie müssen ArrayIndexOutOfBounds selbst handhaben, wenn Sie an 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)
    }
}

1226620cookie-checkWie man ein Objekt in einer ArrayList an einer bestimmten Position einfügt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy