1 package cn.learn.collection;
2
3 import java.util.LinkedList;
4 import java.util.Queue;
5
6 /*
7 java.util.xxx
8
9 ArrayList是接口List的实现类 -底层是数组,查询快,效率低,增删慢
10 add低层代码实际是原数组长度+1;由此生成新数组,再将内容复制进去
11
12 LinkedList是接口List的实现类 -底层是双向链表,增删快,查询慢
13 有很多特有的操作收尾元素,以及链栈的方法,不建议用多态
14 */
15 public class List_Implements {
16 public static void main(String[] args) {
17 LinkedList<String> link = new LinkedList<>();
18 //add()与addLast()方法等效
19 link.add("a");
20 link.add("b");
21 link.add("c");
22 link.add("d");
23 System.out.println(link); //[a,b,c,d]
24
25 //链栈压栈,与addFirst等效,返回void
26 link.push("ss");
27 System.out.println(link); //[ss,b,c,d]
28 //链表出栈,返回出栈的元素值类型,等效removeFirst(),其与getFirst()不同,但返回值一样
29 System.out.println(link.pop()); //ss
30
31 //linked.clear();清空链表
32
33 //入队与add()方法,addLast()等效,变了个名字而已
34 link.offer("ha");
35 System.out.println(link); //[a,b,c,d,ha]
36
37 //出队与unLinkFirst()等效
38 link.poll();
39 System.out.println(link); //[b,c,d,ha]
40 }
41 }