您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Java實現隊列的方法有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
數組實現隊列
//數組實現隊列 class queue{ int[] a = new int[5]; int i = 0; //入隊操作 public void in(int m) { a[i++] = m; } // 出隊列操作 取出最前面的值 通過循環遍歷把所有的數據向前一位 public int out() { int index = 0; int temp = a[0]; for(int j = 0;j < i;j++) { a[j] = a[j + 1]; } return temp; } }
ArrayList實現隊列
//集合實現隊列 class queue{ List<Integer> list = new ArrayList<Integer>(); int index = 0; public void in(int n) { list.add(n); index++; } //出隊列操作 //出隊 public int out(){ if(!list.isEmpty()){ index--; return list.remove(0); } return -1; } }
兩個堆棧實現隊列
//兩個堆棧實現一個隊列 class queue3 { Stack<Integer> stackA = new Stack<Integer>(); Stack<Integer> stackB = new Stack<Integer>(); //入隊 public void in(int n) { stackA.push(n); } //出隊 我們把A里面的元素遍歷拿出放入B中 再拿出B中的第一個元素 public int out() { //判斷b棧有沒有元素 有返回false 無返回真 if(stackB.isEmpty()) { while(!stackA.isEmpty()) { stackB.push(stackA.pop()); } } return stackB.pop(); } }
補充知識:java使用鏈表實現隊列
隊列使用Java進行鏈表實現,在網上找到了一張圖,很好,借鑒一下
設置兩個結點node,front指向隊首元素,rear指向隊尾;
上代碼:
public class LinkedQueue { Node front;//隊頭指針,指向隊頭節點 Node rail;//隊尾指針,指向隊尾節點 int size = 0;//記錄隊列長度 //構造函數 public LinkedQueue() { front = rail = null; } public boolean isEmpty() { return size == 0 ? true : false; } //添加元素 public boolean addQueue(Object ele) { if (size == 0) { front = new Node(null, ele); rail = front; size++; return true; } Node s = new Node(null, ele); //這塊有個主意的地方,一旦rail設置了next屬性,因為front節點與rail節點指向了同一個node節點,持有同一個結點的一個引用,因此front節點next屬性也被填充 rail.setNext(s); rail = s; size++; return true; } /** * 刪除元素,出隊列 * @return */ public boolean deleteQueue() { if (isEmpty()) { System.out.println("當前隊列為空"); return false; } front = front.next; size--; return true; } public static void main(String[] args) { LinkedQueue queue = new LinkedQueue(); queue.addQueue(1); queue.addQueue(2); queue.addQueue(3); queue.deleteQueue(); } } /** * 首先鏈表底層是一個個結點 */ class Node { Node next; Object element; public Node(Node next, Object element) { this.next = next; this.element = element; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public Object getElement() { return element; } public void setElement(Object element) { this.element = element; } }
看完上述內容,你們對Java實現隊列的方法有哪些有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。