查阅API,获取LinkedList类的基本信息。
List 接口的链接列表实现。
实现所有可选的列表操作,并且允许所有元素(包括 null)。
除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。
这些操作允许将链接列表用作堆栈、队列或双端队列。
注意,此实现不是同步的。
那么如何解决多线程同步的问题呢?
API告诉了我们答案:
使用 Collections.synchronizedList 方法来“包装”该列表。
最好在创建时完成这一操作,以防止对列表进行意外的不同步访问,如下所示:
List list = Collections.synchronizedList(new LinkedList(...));
此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的。
特点:增删速度很快,查询稍慢。
LinkedList拥有很多方法,下面仅给出它特有的方法,并对其进行演示。
LinkedList:特有方法:
addFirst();可以用于头插法建立单链表
addLast();可以用于尾插法建立单链表
getFirst();
getLast();
获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException
removeFirst();
removeLast();
获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException
在JDK1.6出现了替代方法。
offerFirst();
offerLast();
peekFirst();
peekLast();
获取元素,但不删除元素。如果集合中没有元素,会返回null。
pollFirst();
pollLast();
获取元素,但是元素被删除。如果集合中没有元素,会返回null。
- import java.util.*;
- class LinkedListDemo
- {
- public static void main(String[] args)
- {
- method_LinkedList();
- }
- //LinkedList特有方法演示
- public static void method_LinkedList()
- {
- //创建链表
- LinkedList link = new LinkedList();
- //用共性方法添加基本元素
- link.add("num01");
- link.add("num02");
- link.add("num03");
- link.add("num04");
- //打印原有链表
- System.out.println("原有链表:"+link);
-
- //头插法
- link.addFirst("num05");
-
- //打印结果
- System.out.println("在头部插入元素后:"+link);
- //尾插法
- link.addLast("num06");
-
- //打印结果
- System.out.println("在尾部插入元素后:"+link);
-
- //获取第一个元素
- System.out.println("第一个元素:"+link.peekFirst());
-
- //获取最后一个元素
- System.out.println("最后一个元素:"+link.peekLast());
-
- //获取并删除第一个元素
- System.out.println("删除第一个元素:"+link.pollFirst());
- System.out.println("删除后的链表:"+link);
-
- //获取并删除最后元素
- System.out.println("删除最后一个元素:"+link.pollLast());
- System.out.println("删除后的链表:"+link);
- //取出并打印LinkedList中的元素
- while(!link.isEmpty())
- System.out.println(link.pollFirst());
- }
- }
复制代码
|
|