方法

方法声明 功能介绍
E push(E item) 把元素放入栈中
boolean empty() 判断堆栈是否为空
synchronized int search(Object o) 返回对象在堆栈上的从1开始的位置
synchronized E pop() 移除此堆栈顶部的对象并将该对象作为此函数的值返回
synchronized E peek() 查看栈顶元素

案例题目

准备一个Stack集合,将数据11、22、33、44、55依次入栈并打印,
然后查看栈顶元素并打印,然后将栈中所有数据依次出栈并打印。

步骤

  1. package top.testeru.listp;
  2. import java.util.Stack;
  3. public class StackDemo {
  4. public static void main(String[] args) {
  5. //1.准备Stack集合
  6. Stack stack = new Stack();
  7. System.out.println("stack = "+stack);
  8. //2.数据11、22、33、44、55依次入栈
  9. for (int i = 1; i < 6; i++) {
  10. Object push = stack.push(i * 11);
  11. System.out.println("入栈的元素是:" + push);
  12. System.out.println("栈中的元素有:" + stack);
  13. }
  14. //查看栈顶元素并打印
  15. Object peek = stack.peek();
  16. System.out.println("栈顶元素:"+ peek);
  17. //11 5
  18. //22 4
  19. //33 3
  20. //44 2
  21. //55 1
  22. int search = stack.search(55);
  23. System.out.println("----search:"+search);
  24. //栈中所有数据依次出栈并打印
  25. int len = stack.size();
  26. for (int i = 0; i < len; i++) {
  27. System.out.println("出栈的元素:"+ stack.pop());
  28. }
  29. //出完了之后打印,里面为空
  30. System.out.println(stack);
  31. }
  32. }

案例题目

再准备一个Stack对象,将数据从第一个栈中取出来放入第二个栈中,然后再从第二个栈中取出并打印。

  1. import java.util.Stack;
  2. public class StackDemo2 {
  3. public static void main(String[] args) {
  4. //1.准备Stack集合
  5. Stack stack1 = new Stack();
  6. Stack stack2 = new Stack();
  7. System.out.println("stack1 = "+stack1);
  8. System.out.println("stack2 = "+stack2);
  9. for (int i = 1; i < 6; i++) {
  10. Object push = stack1.push(i * 11);
  11. System.out.println("stack1入栈元素有:" + push);
  12. }
  13. System.out.println("stack1:" + stack1);
  14. //数据从第一个栈中取出来 放入第二个栈中
  15. int len = stack1.size();
  16. for (int i = 0; i < len; i++) {
  17. //数据从第一个栈中取出来
  18. Object pop = stack1.pop();
  19. //放入第二个栈中
  20. stack2.push(pop);
  21. }
  22. System.out.println("stack2:" + stack2);
  23. //第二个栈中取出并打印
  24. len = stack2.size();
  25. for (int i = 0; i < len; i++) {
  26. System.out.println("stack2栈出栈的元素:"+ stack2.pop());
  27. }
  28. }
  29. }