This is my Scheduler Class that sorts the arraylist. I made a custom compareTo method that returns an int value of 1, -1 or 0.
private ArrayList<Event> events = new ArrayList<Event>();
public Scheduler(ArrayList<Event> events){
for (int i=0; i<events.size(); i++)
{
this.events.add(events.get(i));
}
}
public ArrayList<Event> getSchedule(){
int i;
int j;
int N = events.size();
for (i = 0; i <=(N-1); i++)
{
for(j = 1; j <= N;j++)
{
if(events.get(i).getEndTime().compareTo(events.get(j).getEndTime()) > 0){
Collections.swap(events, i, j);
}
}
}
return events;
}
I call it later in my UI class
Scheduler s = new Scheduler(events);
System.out.println("Schedule:");
for(int i = 0; i<s.getSchedule().size(); i++){
System.out.println(s.getSchedule().get(i));
}
It's giving me an IndexOutofBoundError. Why is it giving me this error, and how can I fix it