Stack เป็น subclass ของคลาส Vector และแสดงถึง stack ของออบเจ็กต์แบบ last-in-first-out (LIFO) องค์ประกอบล่าสุดที่เพิ่มเข้าไปที่ด้านบนของ stack (In) จะเป็นองค์ประกอบแรกที่ถูกนำออก (Out) จาก stack
Queue เป็นคลาสที่ extends Collection interface และรองรับการดำเนินการ insert และ remove แบบ first-in-first-out (FIFO) เราสามารถ implement Stack โดยใช้ Queue ได้ดังโปรแกรมด้านล่าง
ตัวอย่าง
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);
}
}
Output
[40, 30, 20, 10] An element removed from a stack is: 40 [30, 20, 10]