Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

index out of bounds exception java [duplicate]

So the error message is this:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at FcfsScheduler.sortArrival(FcfsScheduler.java:77)
at FcfsScheduler.computeSchedule(FcfsScheduler.java:30)
at ScheduleDisks.main(ScheduleDisks.java:33)

with my code as

public void sortArrival(List<Request> r)
{
    int pointer = 0;
    int sProof = 0;
    while(true)
    {
        if(r.get(pointer).getArrivalTime()<r.get(pointer+1).getArrivalTime())
        {
            Request r1 = r.get(pointer);
            Request r2 = r.get(pointer+1);
            r.set(pointer, r2);
            r.set(pointer+1, r1);
        }
        else
        {
            sProof++;
        }
        ++pointer;
        if(pointer>r.size()-2)
        {
            pointer=0;
            sProof=0;
        }
        if(sProof>=r.size()-2)
        {
            break;
        }
    }
}

The error is at

if(r.get(pointer).getArrivalTime()<r.get(pointer+1).getArrivalTime())

but I think the array index is checked ok with the code after the increment of pointer. Is it an array out of bounds exception or something else? Normally, the error is ArrayIndexOutOfBoundsException when it is the array. What seems to be the problem here?

like image 881
Paul Angelo Pines Cabrera Avatar asked Mar 17 '13 15:03

Paul Angelo Pines Cabrera


2 Answers

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

ArrayList is empty. It does not contain any element.

Index: 0, Size: 0.

You are trying to access it.So you are getting IndexOutOfBoundsException.

if(r.size() == 0) && r.size() < pointer + 1)   //If ArrayList size is zero then simply return from method.
  return;
like image 163
Ajay S Avatar answered Oct 14 '22 16:10

Ajay S


You are passing in an empty array. You should do some validation on the inputs

if (r == null || r.size()==0){
   throw new RuntimeException("Invalid ArrayList");
}
like image 26
Raunak Agarwal Avatar answered Oct 14 '22 17:10

Raunak Agarwal