Search code examples
javaarraylistindexoutofboundsexception

IndexOutOfBoundsException when adding to ArrayList at index


I get exception Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 for the below code. But couldn't understand why.

public class App {
    public static void main(String[] args) {
        ArrayList<String> s = new ArrayList<>();

        //Set index deliberately as 1 (not zero)
        s.add(1,"Elephant");

        System.out.println(s.size());                
    }
}

Update

I can make it work, but I am trying to understand the concepts, so I changed declaration to below but didnt work either.

ArrayList<String> s = new ArrayList<>(10)

Solution

  • ArrayList index starts from 0(Zero)

    Your array list size is 0, and you are adding String element at 1st index. Without adding element at 0th index you can't add next index positions. Which is wrong.

    So, Simply make it as

     s.add("Elephant");
    

    Or you can

    s.add(0,"Elephant");