java固定长度队列怎么实现

avatar
作者
筋斗云
阅读量:0

在Java中,可以使用数组和循环来实现固定长度的队列。下面是一个简单的示例代码:

public class FixedSizeQueue {     private int[] queue;     private int front;     private int rear;     private int size;     private int capacity;      public FixedSizeQueue(int capacity) {         this.capacity = capacity;         queue = new int[capacity];         front = 0;         rear = -1;         size = 0;     }      public void enqueue(int item) {         if (isFull()) {             throw new RuntimeException("Queue is full");         }         rear = (rear + 1) % capacity;         queue[rear] = item;         size++;     }      public int dequeue() {         if (isEmpty()) {             throw new RuntimeException("Queue is empty");         }         int item = queue[front];         front = (front + 1) % capacity;         size--;         return item;     }      public boolean isEmpty() {         return size == 0;     }      public boolean isFull() {         return size == capacity;     }      public int getSize() {         return size;     } } 

在这个示例中,我们使用一个数组来表示队列,使用两个指针frontrear来记录队列的前端和后端位置,使用一个变量size来记录队列中的元素数量,使用一个变量capacity来记录队列的最大容量。

enqueue()方法用于向队列中添加元素,首先检查队列是否已满,如果已满则抛出异常,否则将rear指针向后移动一个位置,并将元素添加到新位置上。

dequeue()方法用于从队列中删除元素,首先检查队列是否为空,如果为空则抛出异常,否则将front指针向后移动一个位置,并返回原先front指针位置上的元素。

isEmpty()方法用于检查队列是否为空,如果队列中元素数量为0,则返回true,否则返回false。

isFull()方法用于检查队列是否已满,如果队列中元素数量等于最大容量,则返回true,否则返回false。

getSize()方法用于获取队列中的元素数量。

使用示例:

FixedSizeQueue queue = new FixedSizeQueue(5); queue.enqueue(1); queue.enqueue(2); queue.enqueue(3); queue.enqueue(4); queue.enqueue(5);  System.out.println(queue.getSize()); // 输出:5  System.out.println(queue.dequeue()); // 输出:1 System.out.println(queue.dequeue()); // 输出:2  queue.enqueue(6); queue.enqueue(7);  System.out.println(queue.getSize()); // 输出:5 System.out.println(queue.isFull()); // 输出:true 

这段示例代码演示了如何使用FixedSizeQueue类来创建一个固定长度为5的队列,并对队列进行操作。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!