黑马程序员技术交流社区

标题: LinkedList概述及特有方法演示 [打印本页]

作者: itheima_llt    时间: 2015-4-13 17:59
标题: LinkedList概述及特有方法演示
查阅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。
  1. import java.util.*;
  2. class LinkedListDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 method_LinkedList();
  7.         }

  8.         //LinkedList特有方法演示
  9.         public static void method_LinkedList()
  10.         {
  11.                 //创建链表
  12.                 LinkedList link = new LinkedList();

  13.                 //用共性方法添加基本元素
  14.                 link.add("num01");
  15.                 link.add("num02");
  16.                 link.add("num03");
  17.                 link.add("num04");

  18.                 //打印原有链表
  19.                 System.out.println("原有链表:"+link);
  20.                
  21.                 //头插法
  22.                 link.addFirst("num05");
  23.                
  24.                 //打印结果
  25.                 System.out.println("在头部插入元素后:"+link);

  26.                 //尾插法
  27.                 link.addLast("num06");
  28.                
  29.                 //打印结果
  30.                 System.out.println("在尾部插入元素后:"+link);
  31.                
  32.                 //获取第一个元素
  33.                 System.out.println("第一个元素:"+link.peekFirst());
  34.                
  35.                 //获取最后一个元素
  36.                 System.out.println("最后一个元素:"+link.peekLast());
  37.                
  38.                 //获取并删除第一个元素
  39.                 System.out.println("删除第一个元素:"+link.pollFirst());
  40.                 System.out.println("删除后的链表:"+link);
  41.                
  42.                 //获取并删除最后元素
  43.                 System.out.println("删除最后一个元素:"+link.pollLast());
  44.                 System.out.println("删除后的链表:"+link);

  45.                 //取出并打印LinkedList中的元素
  46.                 while(!link.isEmpty())
  47.                         System.out.println(link.pollFirst());
  48.         }
  49. }
复制代码




LinkedList特有方法测试结果.jpg (126.72 KB, 下载次数: 2)

LinkedList特有方法测试结果.jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2