中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

使用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

齐河县| 县级市| 六枝特区| 鞍山市| 横峰县| 黄梅县| 防城港市| 来凤县| 西丰县| 康定县| 平乐县| 肇州县| 温宿县| 胶州市| 基隆市| 萝北县| 卢氏县| 白河县| 大庆市| 祁门县| 丰顺县| 措勤县| 平顺县| 依安县| 浑源县| 行唐县| 南华县| 新龙县| 连城县| 阿鲁科尔沁旗| 弋阳县| 江西省| 安泽县| 北宁市| 瑞丽市| 绥宁县| 彩票| 瓮安县| 舒城县| 江孜县| 饶河县|