I am very new to programming and to stackOverflow. I am implementing First Come First Serve(FCFS).But I am getting array index out of bound exception, while entering input in []ArrivalTime I can be a silly mistake but i can not figure out why ,Please help me
import java.util.Scanner;
public class FCFS_Practice {
    public static Scanner scanner = new Scanner(System.in);
    static int numberOfProcess = 0;
    int[]ProcessID = new int[numberOfProcess];
    int[]ArrivalTime  = new int[numberOfProcess];
    int[]BurstTime = new int[numberOfProcess];
    int[]CompletionTime = new int[numberOfProcess];
    int[]TurnAroundTime = new int[numberOfProcess];
    int[]WaitingTime = new int[numberOfProcess];
    float avgWaitingTime = 0,avgTurnAroundTime = 0;
    public void takeInput(){
        System.out.println("Enter the number of process: ");
        numberOfProcess = scanner.nextInt();
    }
    public void inputArrivalAndBurstTime(){
        for(int i = 0;i < numberOfProcess;i++){
            System.out.printf("Enter Arrival Time for Process %d: ",i+1);
            ArrivalTime[i] = scanner.nextInt();
            scanner.nextLine(); // Buffer Flush
            System.out.printf("Enter Burst Time for Process %d: ",i+1);
            BurstTime[i] = scanner.nextInt();
            scanner.nextLine(); // Buffer flush
            ProcessID[i] = i+1;
        }
    }
    public void calculateCompletionTime(){
        for(int i = 0 ; i < numberOfProcess ; i++){
            if(i==0){
                CompletionTime[0]=BurstTime[0];
            } else if (ArrivalTime[i]<CompletionTime[i-1]) {
                CompletionTime[i]=CompletionTime[i-1]+BurstTime[i];
            } else {
                 CompletionTime[i]=ArrivalTime[i]+BurstTime[i];
            }
        }
    }
    public void calculateTurnAroundAndWaitingTime(){
        for(int i = 0 ; i < numberOfProcess ; i++){
            TurnAroundTime[i]=CompletionTime[i]+ArrivalTime[i];
            WaitingTime[i]=TurnAroundTime[i]-BurstTime[i];
        }
    }
    public void getAvgWaitingTimeAndAvgTurnAroundTime(){
        for(int i = 0 ; i<numberOfProcess;i++){
            avgTurnAroundTime+=TurnAroundTime[i];
            avgWaitingTime+=WaitingTime[i];
        }
        avgWaitingTime = avgWaitingTime/numberOfProcess;
        avgTurnAroundTime = avgTurnAroundTime/numberOfProcess;
    }
    public void getTable(){
        System.out.println("ProcessNo.  ArrivalTime  BurstTime  CompletionTime  TurnAroundTime  WaitingTime");
        for(int i = 0 ; i < numberOfProcess ; i++){
            System.out.println(ProcessID[i]+"\t\t"+ArrivalTime[i]+"\t\t"+BurstTime[i]+"\t\t"+CompletionTime[i]+"\t\t\t"+TurnAroundTime[i]+"\t\t\t"+WaitingTime[i]);
        }
    scanner.close();
    }
}
[Output](https://i.stack.imgur.com/z1CEd.png)
 
     
     
    