【问题标题】:What's the Java equivalent of C++'s STL Queue?C++ 的 STL 队列的 Java 等价物是什么?
【发布时间】:2011-05-09 12:50:28
【问题描述】:

我正在浏览 Java docs 以寻找 C++ 的 STL Queue 的 Java 等价物,但我发现的只是一个名为 Queue 的接口和一堆我无法正面或反面的实现。

Java 是否有针对 Queue 的实现,它只是一个 FIFO 数据结构,没有额外的花里胡哨?我只需要enqueuedequeuefront 操作,并且数据结构应该允许重复。

【问题讨论】:

    标签: java data-structures collections queue


    【解决方案1】:

    Queue 可以。使用您喜欢的任何实现。例如LinkedListConcurrentLinkedQueue

    enqueue = offer(..)
    dequeue = poll()
    front = peek()

    【讨论】:

      【解决方案2】:

      您可能正在寻找的是一个双端队列。查看Deque 接口,它正在实现类。

      【讨论】:

        【解决方案3】:

        该文档页面列出了实现该接口的所有类。因此,例如,您可以执行以下操作(免责声明:尚未靠近编译器):

        Queue<E> q = new LinkedList<E>();
        
        E x1 = new E();
        E x2 = new E();
        E x3;
        
        q.offer(x1);
        q.offer(x2);
        
        x3 = q.poll();
        

        【讨论】:

          【解决方案4】:

          java.util.LinkedList 类可能是您想要的,方法是“add”、“remove”和“element”。

          【讨论】:

            【解决方案5】:

            您可以使用LinkedList。当然,它有很多你不需要的功能,但它也不会伤害你。

            【讨论】:

              猜你喜欢
              • 2011-10-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-12-18
              • 2011-01-10
              • 2016-07-26
              • 2010-12-07
              • 2010-11-22
              相关资源
              最近更新 更多