欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)隊列的三種方法集合

 更新時間:2020年09月16日 14:17:28   作者:顏顏顏顏顏越  
這篇文章主要介紹了Java實現(xiàn)隊列的三種方法集合,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

數(shù)組實現(xiàn)隊列

//數(shù)組實現(xiàn)隊列
class queue{
 int[] a = new int[5];
 int i = 0;
 //入隊操作
 public void in(int m) {
 a[i++] = m;
 }
// 出隊列操作  取出最前面的值 通過循環(huán)遍歷把所有的數(shù)據(jù)向前一位
 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實現(xiàn)隊列

//集合實現(xiàn)隊列
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; 
  } 
}

兩個堆棧實現(xiàn)隊列

//兩個堆棧實現(xiàn)一個隊列
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使用鏈表實現(xiàn)隊列

隊列使用Java進行鏈表實現(xiàn),在網(wǎng)上找到了一張圖,很好,借鑒一下

設(shè)置兩個結(jié)點node,front指向隊首元素,rear指向隊尾;

上代碼:

 public class LinkedQueue {
 
  Node front;//隊頭指針,指向隊頭節(jié)點
  Node rail;//隊尾指針,指向隊尾節(jié)點 
  int size = 0;//記錄隊列長度 
 
  //構(gòu)造函數(shù)
  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設(shè)置了next屬性,因為front節(jié)點與rail節(jié)點指向了同一個node節(jié)點,持有同一個結(jié)點的一個引用,因此front節(jié)點next屬性也被填充
    rail.setNext(s);
    rail = s;
    size++;
    return true;
  } 
 
  /**
   * 刪除元素,出隊列
   * @return
   */
  public boolean deleteQueue() {
    if (isEmpty()) {
      System.out.println("當(dāng)前隊列為空");
      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();
 
  } 
}
 
/**
 * 首先鏈表底層是一個個結(jié)點
 */
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實現(xiàn)隊列的三種方法集合就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中break、continue、return語句的使用區(qū)別對比

    Java中break、continue、return語句的使用區(qū)別對比

    這篇文章主要介紹了Java中break、continue、return語句的使用區(qū)別對比,本文用非常清爽簡明的語言總結(jié)了這三個關(guān)鍵字的使用技巧,并用一個實例對比使用結(jié)果,需要的朋友可以參考下
    2015-06-06
  • Springboot接收前端的Json但是為null問題

    Springboot接收前端的Json但是為null問題

    這篇文章主要介紹了Springboot接收前端的Json但是為null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-05-05
  • java中通過行為參數(shù)化傳遞代碼方案

    java中通過行為參數(shù)化傳遞代碼方案

    大家好,本篇文章主要講的是java中通過行為參數(shù)化傳遞代碼方案,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Spring Boot+Nginx實現(xiàn)大文件下載功能

    Spring Boot+Nginx實現(xiàn)大文件下載功能

    相信很多小伙伴,在日常開放中都會遇到大文件下載的情況,大文件下載方式也有很多,比如非常流行的分片下載、斷點下載;當(dāng)然也可以結(jié)合Nginx來實現(xiàn)大文件下載,在中小項目非常適合使用,這篇文章主要介紹了Spring Boot結(jié)合Nginx實現(xiàn)大文件下載,需要的朋友可以參考下
    2024-05-05
  • mybatis學(xué)習(xí)筆記之mybatis注解配置詳解

    mybatis學(xué)習(xí)筆記之mybatis注解配置詳解

    本篇文章主要介紹了mybatis學(xué)習(xí)筆記之mybatis注解配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • java天數(shù)計算函數(shù)(當(dāng)前月天數(shù)、某月總天數(shù)及某月剩余天數(shù))4種方法實現(xiàn)代碼

    java天數(shù)計算函數(shù)(當(dāng)前月天數(shù)、某月總天數(shù)及某月剩余天數(shù))4種方法實現(xiàn)代碼

    日常開發(fā)中會遇到關(guān)于日期的計算,比如當(dāng)月的天數(shù)、兩日期之間的天數(shù)、當(dāng)月剩余天數(shù)等等,這篇文章主要給大家介紹了關(guān)于java天數(shù)計算函數(shù)(當(dāng)前月天數(shù)、某月總天數(shù)及某月剩余天數(shù))4種方法實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • Java中泛型使用實例詳解

    Java中泛型使用實例詳解

    這篇文章主要介紹了Java中泛型使用實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • SpringBoot中動態(tài)更新@Value配置方式

    SpringBoot中動態(tài)更新@Value配置方式

    這篇文章主要介紹了SpringBoot中動態(tài)更新@Value配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Spring中Controller和RestController的區(qū)別詳解

    Spring中Controller和RestController的區(qū)別詳解

    這篇文章主要介紹了Spring中Controller和RestController的區(qū)別詳解,@Controller是標(biāo)識一個Spring類是Spring MVC controller處理器,@Controller類中的方法可以直接通過返回String跳轉(zhuǎn)到j(luò)sp、ftl、html等模版頁面,需要的朋友可以參考下
    2023-09-09
  • Java項目中添加外部jar包的兩種方式(收藏版)

    Java項目中添加外部jar包的兩種方式(收藏版)

    這篇文章主要介紹了java項目中添加外部jar包的兩種方式,第二種方式是將外部jar包引入到本地maven倉庫中,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-03-03

最新評論