Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之隊(duì)列
概述
從今天開始, 小白我將帶大家開啟 Jave 數(shù)據(jù)結(jié)構(gòu) & 算法的新篇章.
隊(duì)列
隊(duì)列 (Queue) 遵循先進(jìn)先出的原則 (First-In-First-Out). 舉個(gè)例子, 早上我們排隊(duì)買早餐的時(shí)候, 先排的人先買后排的人后買.
隊(duì)列只能在隊(duì)首進(jìn)行刪除操作, 在隊(duì)尾進(jìn)行插入操作.
隊(duì)列實(shí)現(xiàn)
enqueue 方法
// 入隊(duì) public void enqueue(E element) { array.add(array.size(), element); }
dequeue 方法
// 出隊(duì) public E dequeue() { E element = array.get(0); array.remove(0); return element; }
main
public static void main(String[] args) { // 創(chuàng)建隊(duì)列 Queue<Integer> queue = new Queue<>(); // 存入5個(gè)元素 for (int i = 0; i < 5; i++) { queue.enqueue(i); System.out.println(queue); } // 取出5個(gè)元素 for (int i = 0; i < 5; i++) { queue.dequeue(); System.out.println(queue); } }
輸出結(jié)果:
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; // 無參構(gòu)造 public Queue() { array = new ArrayList<>(10); } // 有參構(gòu)造 public Queue(int capacity) { array = new ArrayList<>(capacity); } // 入隊(duì) public void enqueue(E element) { array.add(array.size(), element); } // 出隊(duì) public E dequeue() { E element = array.get(0); array.remove(0); return element; } // 隊(duì)列是否為空 public boolean isEmpty() { return array.isEmpty(); } // 隊(duì)列長(zhǎng)度 public int getSize() { return array.size(); } // toString @Override public String toString() { return "Queue{" + "array=" + array + '}'; } public static void main(String[] args) { // 創(chuàng)建隊(duì)列 Queue<Integer> queue = new Queue<>(); // 存入5個(gè)元素 for (int i = 0; i < 5; i++) { queue.enqueue(i); System.out.println(queue); } // 取出5個(gè)元素 for (int i = 0; i < 5; i++) { queue.dequeue(); System.out.println(queue); } } }
到此這篇關(guān)于Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之隊(duì)列的文章就介紹到這了,更多相關(guān)Java 隊(duì)列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MybatisPlus分頁(yè)排序查詢字段帶有下劃線的坑及解決
這篇文章主要介紹了MybatisPlus分頁(yè)排序查詢字段帶有下劃線的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12web.xml詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章給大家詳細(xì)介紹了web.xml的相關(guān)知識(shí),需要的朋友可以參考下2017-07-07Java對(duì)象簡(jiǎn)單實(shí)用案例之計(jì)算器實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Java對(duì)象簡(jiǎn)單實(shí)用案例之計(jì)算器實(shí)現(xiàn)代碼2016-11-11示例解析java重載Overloading與覆蓋Overriding
這篇文章主要介紹了java重載Overloading與覆蓋Overriding的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05SpringCloud Eureka實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)
Eureka是一種基于REST(具像狀態(tài)傳輸)的服務(wù),主要用于AWS云中定位服務(wù),以實(shí)現(xiàn)中間層服務(wù)器的負(fù)載平衡和故障轉(zhuǎn)移。本文記錄一個(gè)簡(jiǎn)單的服務(wù)注冊(cè)與發(fā)現(xiàn)實(shí)例。感興趣的小伙伴們可以參考一下2019-01-01SpringMVC實(shí)現(xiàn)表單驗(yàn)證功能詳解
這篇文章主要為大家詳細(xì)介紹了SpringMVC 表單驗(yàn)證的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10使用SpringBoot請(qǐng)求參數(shù)過濾空格
這篇文章主要介紹了使用SpringBoot請(qǐng)求參數(shù)過濾空格的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08SpringBoot整合GRPC微服務(wù)遠(yuǎn)程通信的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot整合GRPC微服務(wù)遠(yuǎn)程通信的實(shí)現(xiàn)示例,包含gRPC的工作原理,以及如何在Spring Boot應(yīng)用中集成gRPC,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02JAVA并發(fā)編程有界緩存的實(shí)現(xiàn)詳解
這篇文章主要介紹了JAVA并發(fā)編程有界緩存的實(shí)現(xiàn)詳解的相關(guān)資料,這里舉例說明如何實(shí)現(xiàn),四種方法一一代碼實(shí)現(xiàn),需要的朋友可以參考下2016-12-12