English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

我们如何使用Java中的队列实现堆栈?

堆栈 是的一个子类矢量 类和它代表升AST入先出(LIFO)对象的堆栈。添加到堆栈顶部的最后一个元素(In)可以是要从堆栈中删除的第一个元素(Out)。

队列 类扩展收集 界面和它支持的插入 移除 使用的操作的 先入先出(FIFO) 。我们还可以在下面的程序中使用Queue实现一个Stack。

示例

import java.util.*;
public class StackFromQueueTest {
   Queue queue = new LinkedList();   public void push(int value) {      int queueSize = queue.size();
      queue.add(value);
      for (int i = 0; i < queueSize; i++) {
         queue.add(queue.remove());
      }
   }   public void pop() {      System.out.println("An element removed from a stack is: " + queue.remove());
   }
   public static void main(String[] args) {
      StackFromQueueTest test = new StackFromQueueTest();
      test.push(10);
      test.push(20);
      test.push(30);
      test.push(40);
      System.out.println(test.queue);
      test.pop();
      System.out.println(test.queue);
   }
}

输出结果

[40, 30, 20, 10]An element removed from a stack is: 40[30, 20, 10]