ArrayList index out of bounds exception

Vor kurzem während der Verwendung von arrayList fand ich ein sonderbares Problem. Ich will, dass 2 Elemente in der arraylist und möchte zu halten Objekt1 in element 0 und objekt2 in element1.

Bin ich der Entscheidung, diese in einer Schleife.

Wenn es passiert, hinzufügen des ersten Elements, dessen werfen indexOutofBounds. Als pro-java-doc als der index ist größer als die Größe sein, dies zu tun.

public static void main(String[] args) 
    {
        ArrayList<String> list = new ArrayList<String>();
        list.add(1,"SECONDITEM"); //throwing  due to size is not set
        list.add(0,"FIRSTITEM");

        int postn=0;
        for(String item:list){

            System.out.println("Position "+postn+" :"+item);
            postn++;
        }
    }

Dann habe ich versucht setup, die andere Elemente als Platzhalter in 0,1-element und versuchte gleichen

    public static void main(String[] args) 
    {
        ArrayList<String> list = new ArrayList<String>();
        list.add(0,"x");
        list.add(1,"y");

        list.add(1,"SECONDITEM");

        list.add(0,"FIRSTITEM");

        int postn=0;
        for(String item:list){

            System.out.println("Position "+postn+" :"+item);
            postn++;
        }
    }

    Output:
    Position 0 :FIRSTITEM
    Position 1 :x
    Position 2 :SECONDITEM
    Position 3 :y

, Wie man über dieses Problem. Eine Möglichkeit, die ich gefunden ist, um das element in den index und fügen Sie das element. Gibt es eine bessere option.

public static void main(String[] args) 
    {
        ArrayList<String> list = new ArrayList<String>();
        list.add(0,"x");
        list.add(1,"y");
        list.remove(1);
        list.add(1,"SECONDITEM");
        list.remove(0);
        list.add(0,"FIRSTITEM");

        int postn=0;
        for(String item:list){

            System.out.println("Position "+postn+" :"+item);
            postn++;
        }
    }

    Position 0 :FIRSTITEM
    Position 1 :SECONDITEM
  • Erm, keine ArrayList?
  • Erstellen Sie Ihre eigenen LinkdList Klasse behandelt, in diesem Fall. Oder fügen Sie in so viele wie Standardwerte, wie Sie möchten, um die ArrayList, bevor Sie eine index-spezifische, fügt
  • ich habe das gleiche issui, warum?
InformationsquelleAutor Sathish | 2014-02-02
Schreibe einen Kommentar