如何通过 Java Deque 实现数据的先进先出

发布时间:2025-01-23 09:52:39 作者:小樊
来源:亿速云 阅读:85

在Java中,Deque(双端队列)是一个允许从两端添加和删除元素的集合

  1. 导入所需的库:
import java.util.ArrayDeque;
import java.util.Deque;
  1. 创建一个类并实现先进先出(FIFO)的数据结构:
public class FIFODeque {
    private Deque<Integer> deque;

    public FIFODeque() {
        deque = new ArrayDeque<>();
    }

    // 在队列前端添加元素
    public void addFirst(int item) {
        deque.addFirst(item);
    }

    // 在队列后端添加元素
    public void addLast(int item) {
        deque.addLast(item);
    }

    // 从队列前端删除元素
    public int removeFirst() {
        if (deque.isEmpty()) {
            throw new IllegalStateException("Deque is empty");
        }
        return deque.removeFirst();
    }

    // 从队列后端删除元素
    public int removeLast() {
        if (deque.isEmpty()) {
            throw new IllegalStateException("Deque is empty");
        }
        return deque.removeLast();
    }

    // 查看队列前端元素
    public int peekFirst() {
        if (deque.isEmpty()) {
            throw new IllegalStateException("Deque is empty");
        }
        return deque.peekFirst();
    }

    // 查看队列后端元素
    public int peekLast() {
        if (deque.isEmpty()) {
            throw new IllegalStateException("Deque is empty");
        }
        return deque.peekLast();
    }

    // 检查队列是否为空
    public boolean isEmpty() {
        return deque.isEmpty();
    }

    // 获取队列大小
    public int size() {
        return deque.size();
    }
}
  1. 使用 FIFODeque 类进行先进先出操作:
public class Main {
    public static void main(String[] args) {
        FIFODeque fifoDeque = new FIFODeque();

        // 添加元素到队列前端和后端
        fifoDeque.addFirst(1);
        fifoDeque.addLast(2);
        fifoDeque.addFirst(3);

        // 查看队列前端和后端元素
        System.out.println("Peek first: " + fifoDeque.peekFirst()); // 输出:Peek first: 3
        System.out.println("Peek last: " + fifoDeque.peekLast()); // 输出:Peek last: 2

        // 从队列前端和后端删除元素
        System.out.println("Remove first: " + fifoDeque.removeFirst()); // 输出:Remove first: 3
        System.out.println("Remove last: " + fifoDeque.removeLast()); // 输出:Remove last: 2

        // 查看队列前端和后端元素
        System.out.println("Peek first: " + fifoDeque.peekFirst()); // 输出:Peek first: 1
        System.out.println("Peek last: " + fifoDeque.peekLast()); // 输出:Peek last: (空)
    }
}

这个示例展示了如何使用 Java Deque 实现先进先出(FIFO)的数据结构。你可以根据需要修改和扩展这个类。

推荐阅读:
  1. php中通过命名管道实现跨语言进程间通信的案例
  2. Python中怎么实现进程间通过队列共享数据

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Java Deque 在集合框架中的地位如何

下一篇:Java Deque 支持哪些类型的元素操作

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》