java固定长度队列怎么实现

   2025-02-15 6410
核心提示:在Java中,可以使用数组和循环来实现固定长度的队列。下面是一个简单的示例代码:public class FixedSizeQueue {private int[] q

在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()); // 输出:5System.out.println(queue.dequeue()); // 输出:1System.out.println(queue.dequeue()); // 输出:2queue.enqueue(6);queue.enqueue(7);System.out.println(queue.getSize()); // 输出:5System.out.println(queue.isFull()); // 输出:true

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

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言