JAVA提高教程(9)-认识List列表之LinkedList
时间:2011-04-07 csdn 老紫竹
LinkedList提供了将链接列表用作堆栈、队列或双端队列的方法,这里不再重复介绍 List的标准操作,只给出其独特方法的使用。
请注意其已经实现的接口
Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>
1.package collection.lession9;
2.
3.import java.util.Arrays;
4.import java.util.Iterator;
5.import java.util.LinkedList;
6.import java.util.List;
7.
8./**
9. * 老紫竹JAVA提高教程(6)-认识List列表之LinkedList<br>
10. * 实现了双向队列的控制,包括头尾的操作<br>
11. * 可用于堆栈和FIFO操作等。 <br>
12. * <br>
13. * 相关API请查看 api.java2000.net/LinkedList
14. *
15. * @author 老紫竹 JAVA世纪网(java2000.net)
16. *
17. */
18.public class Lession9 {
19.
20. public static void main(String[] args) {
21. // 对于List的基础操作,这里不再重复
22. // 请自行查看介绍List的内容
23. // 这里专注于LinkedList所引入的特性部分
24. //
25. LinkedList<String> list = new LinkedList<String>();
26. list.add("1111");
27. list.add("2222");
28. list.add("3333");
29.
30. showList(list); // [1111, 2222, 3333]
31.
32. // 在列表的最头部增加一个
33. list.addFirst("head");
34. showList(list); // [head, 1111, 2222, 3333]
35.
36. // 测试反向的迭代器
37. // 正常的迭代器应该是从第一个数据开始
38. // 这个是从最后一个开始,这也是LinkedList的特点
39. Iterator<String> it = list.descendingIterator();
40. while (it.hasNext()) {
41. System.out.print(it.next() + ","); // 3333,2222,1111,head,
42. }
43. System.out.println();
44.
45. // 获取列表的第一个数据,且继续保留这个数据
46. // 内部都是 getFirst,无任何区别
47. System.out.println(list.element()); // head
48. System.out.println(list.getFirst()); // head
49. // 如果长度为0,会返回null,否则和getFirst相同
50. System.out.println(list.peek()); // head
51. System.out.println(list.peekFirst()); // head
52.
53. // 获取列表的最后一个数据,且继续保留这个数据
54. System.out.println(list.getLast()); // 3333
55. // 如果长度为0,会返回null,否则和getLast相同
56. System.out.println(list.peekLast()); // 3333
57.
58. // 在列表末尾增加一个数据
59. list.offer("tail");
60. showList(list); // [head, 1111, 2222, 3333, tail]
61.
62. // 在列表最前面增加一个数据
63. // 内部通过 addFirst 实现的
64. list.offerFirst("----");
65. showList(list); // [----, head, 1111, 2222, 3333, tail]
66.
67. // 在列表末尾增加一个数据
68. // 内部通过 addLast实现的
69. list.offerLast("====");
70. showList(list); // [----, head, 1111, 2222, 3333, tail, ====]
71.
72. // 获取列表的第一个数据,并从删除这个数据
73. System.out.println(list.poll()); // ----
74. System.out.println(list.pollFirst()); // head
75.
76. // 获取列表的最后一个数据,并从删除这个数据
77. System.out.println(list.pollLast()); // ====
78.
79. // 以堆栈的形式存入一个数据
80. // 将该元素插入此列表的开头
81. // 内部通过 addFirst实现
82. list.push("xyz");
83. showList(list);
|