发新话题

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


不多说,我们直接看源代码
package collection.lession10;

import java.util.Arrays;
import java.util.List;
import java.util.Stack;

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

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

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

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

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

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

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

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

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

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

  /**
   * 显示List里面的数据。
   * 
   * @param list
   */
  private static void showList(List list) {
    System.out.println(Arrays.toString(list.toArray()));
  }
}



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

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

对于List的介绍,我们就到此告一段落。
快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP
看不懂的还可以去这里看看,保证全部清楚http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/Stack.html
编辑 回复 快速回复 TOP
学习了
编辑 回复 快速回复 TOP
学习了。。没用过这个东西
Everyone is No 1~``
编辑 回复 快速回复 TOP
push(E item)
          把项压入堆栈顶部。
中E是指什么类型啊?
编辑 回复 快速回复 TOP
E 是泛型,可以是任何类型的Object, 比如你用 Integer,则是
push(Integer num)
如果是String, 则是

push(String num)

你去看看泛型的知识,在本站搜索 ”泛型"就可以了
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
发新话题