Course – LS – All

Get started with Spring and Spring Boot, through the Learn Spring course:

>> CHECK OUT THE COURSE

1. Introduction

The first-in-first-out (FIFO) principle governs a basic data structure in computer science called the queue. Moreover, the queuing process involves appending the items onto the tail and removing them at the head, which is provided in the Queue interface in Java.

Nevertheless, some contexts will require deleting a few elements from a queue depending on certain terms.

In this tutorial, we’ll discuss deleting elements from the queue using loops in Java.

2. Removing Even Numbers from a Queue

While deleting elements, deletion may be made on the basis of custom conditions from the queue. If it is a queue of integers that contains only even values, let’s try to eradicate them. To do so, we’ll iterate through the queue with a loop and delete all the even numbers as follows:

@Test
public void givenQueueWithEvenAndOddNumbers_whenRemovingEvenNumbers_thenOddNumbersRemain() {
    Queue<Integer> queue = new LinkedList<>();
    queue.add(1);
    queue.add(2);
    queue.add(3);
    queue.add(4);
    queue.add(5);

    Queue<Integer> oddElementsQueue = new LinkedList<>();

    while (queue.peek() != null) {
        int element = queue.remove();
        if (element % 2 != 0) {
            oddElementsQueue.add(element);
        }
    }

    assertEquals(3, oddElementsQueue.size());
    assertTrue(oddElementsQueue.contains(1));
    assertTrue(oddElementsQueue.contains(3));
    assertTrue(oddElementsQueue.contains(5));
}

In the above test method, we start by initializing a new queue with numbers (1, 2, 3, 4, and 5) and an empty queue named oddElementsQueue. Additionally, we use a while loop to remove elements from the queue one by one until it becomes empty. If the element is odd, it is added to the oddElementsQueue. Finally, the test asserts that the oddElementsQueue contains three elements, specifically the odd numbers 1, 3, and 5 using the assertTrue method.

3. Removing Strings That Begin With a Particular Letter

Suppose we have a queue of strings that we would like to delete the strings that begin with a particular letter. Let’s take the following example:

@Test
public void givenStringQueue_whenRemovingStringsThatStartWithA_thenStringElementsRemain() {
    Queue<String> queue = new LinkedList<>();
    queue.add("Apple");
    queue.add("Banana");
    queue.add("Orange");
    queue.add("Grape");
    queue.add("Mango");

    Queue<String> stringElementsQueue = new LinkedList<>();

    while (queue.peek() != null) {
        String element = queue.remove();
        if (!element.startsWith("A")) {
            stringElementsQueue.add(element);
        }
    }

    assertEquals(4, stringElementsQueue.size());
    assertTrue(stringElementsQueue.contains("Banana"));
    assertTrue(stringElementsQueue.contains("Orange"));
    assertTrue(stringElementsQueue.contains("Grape"));
    assertTrue(stringElementsQueue.contains("Mango"));
}

In the above code, we iterate through the elements of the queue one by one until it becomes empty. We also check if this element doesn’t start with the letter “A”, it is added to the stringElementsQueue queue. Finally, we utilize asserts to verify that the stringElementsQueue contains four elements, specifically the strings (“Apple”, “Banana”, “Orange”, “Grape”, and “Mango”) using the assertTrue method.

4. Conclusion

In this tutorial, we looked into removing elements from a queue through a while loop in Java. We discussed two scenarios: how to take out even numbers in the queue and another situation whereby one can pick out strings that start with a specific letter.

Learning how to operate queues is very important in Java because it forms part of your overall programming knowledge.

As always, the complete code samples for this article can be found over on GitHub.

Course – LS – All

Get started with Spring and Spring Boot, through the Learn Spring course:

>> CHECK OUT THE COURSE
res – REST with Spring (eBook) (everywhere)
Comments are open for 30 days after publishing a post. For any issues past this date, use the Contact form on the site.