import java.util.LinkedList;
import java.util.Queue;
import java.util.ArrayList;
import java.util.List;
class QueueFlattener {
/**
* Flattens a nested structure of queues into a single list for monitoring.
*
* @param queues A list of queues to flatten.
* @return A list containing all elements from the input queues.
*/
public static <T> List<T> flattenQueues(List<Queue<T>> queues) {
List<T> flattenedList = new ArrayList<>(); // Initialize an empty list to store flattened elements.
if (queues == null || queues.isEmpty()) {
return flattenedList; // Return empty list if input is null or empty.
}
for (Queue<T> queue : queues) { // Iterate through each queue in the input list.
if (queue != null) { // Check if the queue is not null
while (!queue.isEmpty()) { // Iterate while the queue is not empty.
flattenedList.add(queue.poll()); // Dequeue an element and add it to the flattened list.
}
}
}
return flattenedList; // Return the flattened list.
}
public static void main(String[] args) {
// Example usage:
Queue<Integer> queue1 = new LinkedList<>();
queue1.add(1);
queue1.add(2);
queue1.add(3);
Queue<Integer> queue2 = new LinkedList<>();
queue2.add(4);
queue2.add(5);
Queue<Integer> queue3 = new LinkedList<>();
queue3.add(6);
List<Queue<Integer>> queues = new ArrayList<>();
queues.add(queue1);
queues.add(queue2);
queues.add(queue3);
List<Integer> flattened = flattenQueues(queues);
System.out.println(flattened); // Output: [1, 2, 3, 4, 5, 6]
}
}
Add your comment