В коде вашего основного метода вы инициализируете queue
, добавляя к нему экземпляры Process
.
ArrayList<Process> queue = new ArrayList<Process>();
queue.add(a);
queue.add(b);
queue.add(c);
queue.add(d);
queue.add(e);
Scheduler run = new Scheduler(queue);
queue
передается в конструктор Scheduler
,только для повторной инициализации, таким образом удаляя все экземпляры Process
, которые были в нем ранее.
public Scheduler(ArrayList<Process> Queue) {
Arriving = new ArrayList<Process>();
Queue = new ArrayList<Process>(); // Change this line to this.Queue = Queue
for (int i = 0; i<Queue.size(); i++) {
Arriving.add(Queue.get(i));
}
Sort();
currentTime = 0;
}
Так что, когда вы пытаетесь перебрать все объекты в конструкторе, Queue.size()
возвращает 0.
У вас есть ArrayList<Process> Queue
в качестве члена класса, хотя это имя отражает локальную переменную Queue
, которая была передана в Scheduler
.
Вместо того, чтобы проходить через Queue
идобавив все объекты к Arriving
, вы можете просто установить Arriving = Queue
.