老紫竹JAVA提高教程(10)-认识List列表之Stack

来源:互联网 发布:ff14人男捏脸数据 编辑:程序博客网 时间:2024/05/01 09:16
 
不多说,我们直接看源代码JAVA世纪网,http://www.java2000.net
  1. package collection.lession10;

  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Stack;

  5. /**
  6.  * 老紫竹JAVA提高教程(10)-认识List列表之Stack<br>
  7.  * 实现了LIFO的对象堆栈,<br>
  8.  * 类本身继承自Vector,扩展了一些方法<br>
  9.  * <br>
  10.  * 推荐使用 JDK 6 开始提供的 Deque 接口实现堆栈操作 <br>
  11.  * <br>
  12.  * 相关API请查看 api.java2000.net/Stack
  13.  * 
  14.  * @author 老紫竹 JAVA世纪网(java2000.net)
  15.  * 
  16.  */
  17. public class Lession10 {

  18.   public static void main(String[] args) {
  19.     // 由于Stack 继承自Vector,所以Vector的各种方法这里就不介绍了
  20.     // 请自行参考Vector对应的教程

  21.     // 创建一个空堆栈
  22.     Stack stack = new Stack();
  23.     showList(stack);

  24.     // 检查堆栈是否为空
  25.     System.out.println("empty=" + stack.empty());

  26.     // 我们把数据压入堆栈
  27.     stack.push(123);
  28.     stack.push("xyz");
  29.     showList(stack);

  30.     // 检查堆栈是否为空
  31.     System.out.println("empty=" + stack.empty());

  32.     // 再次压入数据
  33.     stack.push(456);
  34.     stack.push("xyz"); // 注意这个xyz与前面的一个数据重复
  35.     showList(stack);

  36.     // 我们查看一下堆栈的第一个数据
  37.     // 注意此peek操作并不移除数据,其仍在堆栈中
  38.     System.out.println("first=" + stack.peek());

  39.     // 下面我们搜索一下某个对象的位置
  40.     System.out.println("123=" + stack.search(123));
  41.     System.out.println("xyz=" + stack.search("xyz"));

  42.     // 我们从堆栈中弹出输出
  43.     while (!stack.empty()) {
  44.       System.out.println("pop=" + stack.pop());
  45.     }
  46.   }

  47.   /**
  48.    * 显示List里面的数据。
  49.    * 
  50.    * @param list
  51.    */
  52.   private static void showList(List list) {
  53.     System.out.println(Arrays.toString(list.toArray()));
  54.   }
  55. }

JAVA世纪网,http://www.java2000.net
堆栈在一般的应用中并不常见,大多和算法有关的时候才会使用。它属于后进先出的LIFO的机制。push和pop是其标志性操作。

在汇编语言里面,对于堆栈的操作也是
PUSH AX
POP AX

对于List的介绍,我们就到此告一段落。
原创粉丝点击