阅读量: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; } }
在这个示例中,我们使用一个数组来表示队列,使用两个指针front
和rear
来记录队列的前端和后端位置,使用一个变量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的队列,并对队列进行操作。