Skip to content

Commit d21b09b

Browse files
committed
fix formatting
1 parent 6631350 commit d21b09b

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

src/main/java/com/thealgorithms/scheduling/PreemptivePriorityScheduling.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,12 @@ public void scheduleProcesses() {
2424
PriorityQueue<ProcessDetails> readyQueue = new PriorityQueue<>(Comparator.comparingInt(ProcessDetails::getPriority).reversed().thenComparingInt(ProcessDetails::getArrivalTime));
2525

2626
int currentTime = 0;
27-
int processIndex = 0;
27+
List<ProcessDetails> arrivedProcesses = new ArrayList<>();
2828

29-
while (processIndex < processes.size() || !readyQueue.isEmpty()) {
30-
while (processIndex < processes.size() && processes.get(processIndex).getArrivalTime() <= currentTime) {
31-
readyQueue.add(processes.get(processIndex));
32-
processIndex++;
33-
}
29+
while (!processes.isEmpty() || !readyQueue.isEmpty()) {
30+
updateArrivedProcesses(currentTime, arrivedProcesses);
31+
readyQueue.addAll(arrivedProcesses);
32+
arrivedProcesses.clear();
3433

3534
if (!readyQueue.isEmpty()) {
3635
ProcessDetails currentProcess = readyQueue.poll();
@@ -47,4 +46,14 @@ public void scheduleProcesses() {
4746
currentTime++;
4847
}
4948
}
49+
50+
private void updateArrivedProcesses(int currentTime, List<ProcessDetails> arrivedProcesses) {
51+
processes.removeIf(process -> {
52+
if (process.getArrivalTime() <= currentTime) {
53+
arrivedProcesses.add(process);
54+
return true;
55+
}
56+
return false;
57+
});
58+
}
5059
}

0 commit comments

Comments
 (0)