Understand Arraylist IndexOutOfBoundsException in Android

java.util.ArrayList.throwIndexOutOfBoundsException: Invalid index 3, size is 3

It means you have ArrayList which having 3 elements where you can get each element like 0,1,2 positions. And you are trying to read 4th element which does not exists into ArrayList.

java.util.ArrayList.throwIndexOutOfBoundsException: Invalid index 0, size is 0

It means you have a empty ArrayList, and you are trying to read 1st element.

ArrayIndexOutOfBoundsException - Examples

An array-index out of bounds exception is a Java exception thrown due to the fact that the program is trying to access an element at a position that is outside an array limit, hence the words "Out of bounds". In other words, the program is trying to access an element at an index that is outside the array bounds. To understand array bounds, let us consider the following diagram:

enter image description here

The picture above contains an array that consists of 7 elements. Each element in the array has its own index/position. In Java, an index always starts with 0 and ends with the length of the array -1. For example, the array above consists of 7 elements, therefore it's indices start from 0 and end with 6 (7-1). Attempting to access an element with an index less than 0 or more than 6 will cause Java to throw an ArrayIndexOutOfBoundsException.

Read more about ArrayIndexOutOfBoundsException - Examples, Causes & Fixes


When your ArrayList size is 3, you can access the items at position 0 1 and 2. If you try to access the item at position 3, it will throw an IndexOutOfBoundsException.

So when you iterate through Arraylist, your for loop should be like this

for(int i=0; i< list.size(); i++){
   Object data = list.get(i);

Your condition must be i< list.size()


It is as simple as it gets.

java.util.ArrayList.throwIndexOutOfBoundsException: Invalid index 3, size is 3

It says size is 3 and the index you are asking for is also 3. Array list start with 0 so the maximum index will be 2 if the size is 3.

java.util.ArrayList.throwIndexOutOfBoundsException: Invalid index 3, size is 3

this means your arraylist size = 3, but you want to access index = 3 in arraylist. You need to know the index start at 0 in arraylist so that if your arraylist size = 3 that means you can access index from 0 to 2 like this


I have multiple JREs installed (6,7,8 both 32 and 64 bit). The way I have set things up is that I have the set up a number of JAVA_x_HOME paths and then reference JAVA_HOME=%JAVA_x_HOME% depending on ...

Edit: I am using quartz-2.1.5.jar. Here's the summary of my classes: HttpPollingJob extends PollingJob extends ScheduledJob implements org.quartz.Job Specifically: 1) ScheduledJob implements ...

How I can get the ID of a saved object. please give me an idea. because I am a beginner in grails def saveCandidates(){ def candidate=new Candidates( name: request....

I am trying to run the SimulationStarted class with the moving average strategy in the open source edition of AlgoTrader. When I start the SimulationStarter I get ArrayIndexOutOfBoundsException. I ...