JAVA提高教程(10)-认识List列表之Stack
时间:2011-04-07 csdn 老紫竹
不多说,我们直接看源代码
1.package collection.lession10;
2.
3.import java.util.Arrays;
4.import java.util.List;
5.import java.util.Stack;
6.
7./**
8. * 老紫竹JAVA提高教程(10)-认识List列表之Stack<br>
9. * 实现了LIFO的对象堆栈,<br>
10. * 类本身继承自Vector,扩展了一些方法<br>
11. * <br>
12. * 推荐使用 JDK 6 开始提供的 Deque 接口实现堆栈操作 <br>
13. * <br>
14. * 相关API请查看 api.java2000.net/Stack
15. *
16. * @author 老紫竹 JAVA世纪网(java2000.net)
17. *
18. */19.public class Lession10 {
20.
21. public static void main(String[] args) {
22. // 由于Stack 继承自Vector,所以Vector的各种方法这里就不介绍了
23. // 请自行参考Vector对应的教程
24.
25. // 创建一个空堆栈
26. Stack stack = new Stack();
27. showList(stack);
28.
29. // 检查堆栈是否为空
30. System.out.println("empty=" + stack.empty());
31.
32. // 我们把数据压入堆栈
33. stack.push(123);
34. stack.push("xyz");
35. showList(stack);
36.
37. // 检查堆栈是否为空
38. System.out.println("empty=" + stack.empty());
39.
40. // 再次压入数据
41. stack.push(456);
42. stack.push("xyz"); // 注意这个xyz与前面的一个数据重复
43. showList(stack);
44.
45. // 我们查看一下堆栈的第一个数据
46. // 注意此peek操作并不移除数据,其仍在堆栈中
47. System.out.println("first=" + stack.peek());
48.
49. // 下面我们搜索一下某个对象的位置
50. System.out.println("123=" + stack.search(123));
51. System.out.println("xyz=" + stack.search("xyz"));
52.
53. // 我们从堆栈中弹出输出
54. while (!stack.empty()) {
55. System.out.println("pop=" + stack.pop());
56. }
57. }
58.
59. /**
60. * 显示List里面的数据。
61. *
62. * @param list
63. */
64. private static void showList(List list) {
65. System.out.println(Arrays.toString(list.toArray()));
66. }
67.}
68.
堆栈在一般的应用中并不常见,大多和算法有关的时候才会使用。它属于后进先出的 LIFO的机制。push和pop是其标志性操作。
在汇编语言里面,对于堆栈的操作也是
PUSH AX
POP AX
对于List的介绍,我们就到此告一段落。 |