亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Java 1.8數組實現循環隊列

發布時間:2020-10-28 15:29:12 來源:億速云 閱讀:381 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關使用Java 1.8數組實現循環隊列,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1、引入

使用數組實現循環隊列,功能如下:

1)isFull():隊列滿?
2)isEmpty():隊列空?
3)add():添加元素。
4)pop():移除元素。
5)display():展示隊列。
6)getSize():獲取當前隊列元素個數。

2、代碼

package DataStructure;

import java.util.Arrays;

/**
 * @author: Inki
 * @email: inki.yinji@qq.com
 * @create: 2020 1022
 * @last_modify: 2020 1023
 */

public class MyArrayQueue<AnyType> {

  /**
   * The default max size of my array queue.
   */
  private final int DEFAULT_MAX_SIZE = 10;

  /**
   * The max size of my array queue.
   */
  private int maxSize;

  /**
   * The front of my array queue.
   */
  private int front;

  /**
   * The rear of my array queue.
   */
  private int rear;

  /**
   * Using array to simulate queue.
   */
  private AnyType[] arrQueue;

  /**
   * The first constructor.
   */
  public MyArrayQueue() {
    this(DEFAULT_MAX_SIZE);
  }//Of the first constructor

  /**
   * The second constructor.
   */
  public MyArrayQueue(int paraMaxSize) {
    maxSize = paraMaxSize + 1;
    arrQueue = (AnyType[]) new Object[maxSize];
    front = 0;
    rear = 0;
  }//Of the second constructor

  /**
   * Queue is full&#63;
   * @return:
   *   True if full else false.
   */
  public boolean isFull() {
    return (rear + 1) % maxSize == front;
  }//Of isFull

  /**
   * Queue is empty&#63;
   * @return:
   *   True if empty else false.
   */
  public boolean isEmpty() {
    return front == rear;
  }//Of isEmpty

  /**
   * Add element.
   * @param:
   *   paraVal:
   *     The given value.
   */
  public void add(AnyType paraVal) {
    if(isFull()) {
      System.out.println("The queue is full.");
      return;
    }//Of if
    arrQueue[rear] = paraVal;
    rear = (rear + 1) % maxSize;
  }//Of add

  /**
   * Pop element.
   */
  public AnyType pop() {
    if (isEmpty()) {
      throw new RuntimeException("The queue is full.");
    }//Of if
    AnyType retVal = arrQueue[front];
    front = (front + 1) % maxSize;
    return retVal;
  }//of pop

  /**
   * Display array queue.
   */
  public void display() {
    if (isEmpty()) {
      System.out.println("The queue is empty.");
      return;
    }//Of if

    System.out.print("The queue is: [");
    int i = front;
    while (i != (rear + maxSize- 1) % maxSize) {
      System.out.printf("%s, ", arrQueue[i]);
      i = (i + 1) % maxSize;
    }//Of while
    System.out.printf("%s]", arrQueue[rear - 1]);
  }//Of display

  /**
   * Get current size of my array queue.
   */
  public int getSize() {
    return (rear - front + maxSize) % maxSize + 1;
  }//Of getSize

  /**
   * The main
   **/
  public static void main(String[] args) {
    MyArrayQueue <Integer> testArrayQueue = new MyArrayQueue<>(3);
    testArrayQueue.add(1);
    testArrayQueue.add(2);
    testArrayQueue.add(4);
    testArrayQueue.pop();
    testArrayQueue.display();
  }//Of main

}//Of MyArrayQueue

以上就是使用Java 1.8數組實現循環隊列,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克陶县| 临安市| 如皋市| 会宁县| 行唐县| 新竹市| 从化市| 开原市| 谢通门县| 焦作市| 盖州市| 双流县| 句容市| 洛浦县| 长宁区| 林周县| 五家渠市| 东台市| 长泰县| 蒙山县| 毕节市| 南木林县| 黔东| 奇台县| 湟源县| 井陉县| 吉木萨尔县| 台江县| 蓝山县| 吴江市| 安泽县| 盐池县| 吉水县| 嘉峪关市| 台山市| 陈巴尔虎旗| 衡东县| 乌海市| 上思县| 云林县| 宁波市|