Java?數(shù)據(jù)結構與算法系列精講之隊列
概述
從今天開始, 小白我將帶大家開啟 Jave 數(shù)據(jù)結構 & 算法的新篇章.

隊列
隊列 (Queue) 遵循先進先出的原則 (First-In-First-Out). 舉個例子, 早上我們排隊買早餐的時候, 先排的人先買后排的人后買.

隊列只能在隊首進行刪除操作, 在隊尾進行插入操作.
隊列實現(xiàn)
enqueue 方法
// 入隊
public void enqueue(E element) {
array.add(array.size(), element);
}
dequeue 方法
// 出隊
public E dequeue() {
E element = array.get(0);
array.remove(0);
return element;
}
main
public static void main(String[] args) {
// 創(chuàng)建隊列
Queue<Integer> queue = new Queue<>();
// 存入5個元素
for (int i = 0; i < 5; i++) {
queue.enqueue(i);
System.out.println(queue);
}
// 取出5個元素
for (int i = 0; i < 5; i++) {
queue.dequeue();
System.out.println(queue);
}
}
輸出結果:
Queue{array=[0]}Queue{array=[0, 1]}Queue{array=[0, 1, 2]}Queue{array=[0, 1, 2, 3]}Queue{array=[0, 1, 2, 3, 4]}Queue{array=[1, 2, 3, 4]}Queue{array=[2, 3, 4]}Queue{array=[3, 4]}Queue{array=[4]}Queue{array=[]}
完整代碼
import java.util.ArrayList;
public class Queue<E> {
private ArrayList<E> array;
// 無參構造
public Queue() {
array = new ArrayList<>(10);
}
// 有參構造
public Queue(int capacity) {
array = new ArrayList<>(capacity);
}
// 入隊
public void enqueue(E element) {
array.add(array.size(), element);
}
// 出隊
public E dequeue() {
E element = array.get(0);
array.remove(0);
return element;
}
// 隊列是否為空
public boolean isEmpty() {
return array.isEmpty();
}
// 隊列長度
public int getSize() {
return array.size();
}
// toString
@Override
public String toString() {
return "Queue{" +
"array=" + array +
'}';
}
public static void main(String[] args) {
// 創(chuàng)建隊列
Queue<Integer> queue = new Queue<>();
// 存入5個元素
for (int i = 0; i < 5; i++) {
queue.enqueue(i);
System.out.println(queue);
}
// 取出5個元素
for (int i = 0; i < 5; i++) {
queue.dequeue();
System.out.println(queue);
}
}
}
到此這篇關于Java 數(shù)據(jù)結構與算法系列精講之隊列的文章就介紹到這了,更多相關Java 隊列內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
示例解析java重載Overloading與覆蓋Overriding
這篇文章主要介紹了java重載Overloading與覆蓋Overriding的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
SpringCloud Eureka實現(xiàn)服務注冊與發(fā)現(xiàn)
Eureka是一種基于REST(具像狀態(tài)傳輸)的服務,主要用于AWS云中定位服務,以實現(xiàn)中間層服務器的負載平衡和故障轉移。本文記錄一個簡單的服務注冊與發(fā)現(xiàn)實例。感興趣的小伙伴們可以參考一下2019-01-01
SpringBoot整合GRPC微服務遠程通信的實現(xiàn)示例
本文主要介紹了SpringBoot整合GRPC微服務遠程通信的實現(xiàn)示例,包含gRPC的工作原理,以及如何在Spring Boot應用中集成gRPC,具有一定的參考價值,感興趣的可以了解一下2024-02-02

