Skip to content

Commit ad3d04f

Browse files
committed
Fix SpotBug error
1 parent d4d24db commit ad3d04f

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

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

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.thealgorithms.scheduling;
22

3+
import java.util.ArrayList;
34
import java.util.LinkedList;
5+
import java.util.List;
46
import java.util.Queue;
57

68
/**
@@ -9,7 +11,7 @@
911
* between queues depending on their CPU burst behavior.
1012
*/
1113
public class MLFQScheduler {
12-
private Queue<Process>[] queues; // Multi-level feedback queues
14+
private List<Queue<Process>> queues; // Multi-level feedback queues
1315
private int[] timeQuantum; // Time quantum for each queue level
1416
private int currentTime; // Current time in the system
1517

@@ -22,9 +24,9 @@ public class MLFQScheduler {
2224
* @param timeQuantums Time quantum for each queue level
2325
*/
2426
public MLFQScheduler(int levels, int[] timeQuantums) {
25-
queues = new LinkedList[levels];
27+
queues = new ArrayList<>(levels);
2628
for (int i = 0; i < levels; i++) {
27-
queues[i] = new LinkedList<>();
29+
queues.add(new LinkedList<>());
2830
}
2931
timeQuantum = timeQuantums;
3032
currentTime = 0;
@@ -36,7 +38,7 @@ public MLFQScheduler(int levels, int[] timeQuantums) {
3638
* @param p The process to be added to the scheduler
3739
*/
3840
public void addProcess(Process p) {
39-
queues[0].add(p);
41+
queues.get(0).add(p);
4042
}
4143

4244
/**
@@ -46,8 +48,8 @@ public void addProcess(Process p) {
4648
*/
4749
public void run() {
4850
while (!allQueuesEmpty()) {
49-
for (int i = 0; i < queues.length; i++) {
50-
Queue<Process> queue = queues[i];
51+
for (int i = 0; i < queues.size(); i++) {
52+
Queue<Process> queue = queues.get(i);
5153
if (!queue.isEmpty()) {
5254
Process p = queue.poll();
5355
int quantum = timeQuantum[i];
@@ -60,11 +62,11 @@ public void run() {
6062
if (p.isFinished()) {
6163
System.out.println("Process " + p.pid + " finished at time " + currentTime);
6264
} else {
63-
if (i < queues.length - 1) {
65+
if (i < queues.size() - 1) {
6466
p.priority++; // Demote the process to the next lower priority queue
65-
queues[i + 1].add(p); // Add to the next queue level
67+
queues.get(i + 1).add(p); // Add to the next queue level
6668
} else {
67-
queues[i].add(p); // Stay in the same queue if it's the last level
69+
queue.add(p); // Stay in the same queue if it's the last level
6870
}
6971
}
7072
}

0 commit comments

Comments
 (0)