——- android培训、java培训、期待与您交流! ———-
查阅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());
}
}