使用循環從佇列中刪除元素
一、簡介
先進先出 (FIFO) 原則支配著電腦科學中稱為佇列的基本資料結構。此外,排隊過程涉及將項目附加到尾部並在頭部將其刪除,這在Java中的Queue
介面中提供。
然而,某些上下文需要根據某些條件從佇列中刪除一些元素。
在本教程中,我們將討論使用 Java 中的循環從佇列中刪除元素。
2. 從佇列中刪除偶數
刪除元素時,可以根據自訂條件從佇列中刪除。如果它是一個只包含偶數值的整數佇列,讓我們試著消除它們。為此,我們將使用循環遍歷佇列並刪除所有偶數,如下所示:
@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));
}
在上面的測試方法中,我們先用數字(1、2、3、4和5)初始化一個新queue
和一個名為oddElementsQueue
的queue
。此外,我們使用while
循環從queue
中一一刪除元素,直到佇列變空。如果元素是奇數,則將其新增至oddElementsQueue
。最後,測試使用assertTrue
方法asserts
oddElementsQueue
包含三個元素,特別是奇數1、3和5。
3. 刪除以特定字母開頭的字串
假設我們有一個字串queue
,我們想要刪除以特定字母開頭的字串。讓我們看下面的例子:
@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"));
}
在上面的程式碼中,我們逐一迭代queue
的元素,直到隊列變空。我們也檢查該元素是否不是以字母“A”
開頭,它是否被加入到stringElementsQueue
隊列中。最後,我們使用assertTrue
方法利用asserts
來驗證stringElementsQueue
是否包含四個元素,特別是字串( “Apple”
、 “Banana”
、 “Orange”
、 “Grape”
和“Mango”)
。
4。結論
在本教程中,我們研究了透過 Java 中的 while 迴圈從queue
中刪除元素。我們討論了兩種情況:如何取出queue
中的偶數以及另一種情況,即可以挑選出以特定字母開頭的字串。
學習如何操作佇列在 Java 中非常重要,因為它構成了整體程式設計知識的一部分。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。