Queue and Stack Hacks
public class QueueExample {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<String>();
// Adding elements to the queue
queue.add("seven");
System.out.println("Enqueued data: " + "seven");
printQueue(queue);
queue.add("slimy");
System.out.println("Enqueued data: " + "slimy");
printQueue(queue);
queue.add("snakes");
System.out.println("Enqueued data: " + "snakes");
printQueue(queue);
queue.add("sallying");
System.out.println("Enqueued data: " + "sallying");
printQueue(queue);
queue.add("slowly");
System.out.println("Enqueued data: " + "slowly");
printQueue(queue);
queue.add("slithered");
System.out.println("Enqueued data: " + "slithered");
printQueue(queue);
queue.add("southward");
System.out.println("Enqueued data: " + "southward");
printQueue(queue);
// Removing elements from the queue
String data =queue.remove();
while (queue.size() > 0) {
data = queue.remove();
System.out.println("Dequeued data: " + data);
printQueue(queue);
}
}
// Helper method to print the contents of the queue
public static void printQueue(Queue<String> queue) {
System.out.println("Words count: " + queue.size() + ", data: " + String.join(" ", queue));
System.out.println();
}
}
QueueExample.main(null);
Queue<Integer> nums1 = new LinkedList<Integer>();
// Adding elements to the queue
nums1.add(1);
nums1.add(4);
nums1.add(5);
nums1.add(8);
Queue<Integer> nums2 = new LinkedList<Integer>();
// Adding elements to the queue
nums2.add(2);
nums2.add(3);
nums2.add(6);
nums2.add(7);
Queue<Integer> mergeNums = new LinkedList<Integer>();
while (nums1.size() > 0 && nums2.size() > 0) {
if (nums1.peek() < nums2.peek()) { // using peek method to access first element in each list w/out removing it
mergeNums.add(nums1.poll()); // adding the lesser value to mergeNums
nums1.remove(0);
}
else {
mergeNums.add(nums2.poll()); // adding the lesser value to mergeNums
nums2.remove(0);
}
}
System.out.print(mergeNums);