List接口的常用子类:LinkedList

来源:互联网 发布:天猫 淘宝商城棉服 编辑:程序博客网 时间:2024/05/17 00:56

下面编写几个程序,让读者了解此类的操作。

(1)实例操作一:在链表的开头和结尾增加数据

为了达到操作链表的目的,必须直接使用LinkedList类。因为List接口中没有表13-5中所定义的方法。

范例:为链表增加数据

  1. package org.lxh.demo13.listdemo;
  2. import java.util.LinkedList;
  3. public class LinkedListDemo01 {
  4. public static void main(String[] args) {
  5. LinkedList link = new LinkedList();
  6. link.add("A");
  7. // 向链表中增加数据
  8. link.add("B");
  9. // 向链表中增加数据
  10. link.add("C");
  11. // 向链表中增加数据
  12. System.out.println("初始化链表:" + link);
    // 输出链表内容,调用
  13. toString()
  14. link.addFirst("X");
    // 在链表的表头增加内容
  15. link.addLast("Y");
    // 在链表的表尾增加内容
  16. System.out.println("增加头和尾之后的链表:" +
    link);
    // 输出链表内容,调
  17. 用toString()
  18. }
  19. }

程序运行结果:

初始化链表:[A, B, C]

增加头和尾之后的链表:[X, A, B, C, Y]

(2)实例操作二:找到链表头

在LinkedList中存在很多种找到链表头的操作,其中最常用的介绍如下。

找到表头:public E element()。

找到不删除表头:public E peek()。

找到并删除表头:public E poll()。

范例:找到表头

  1. package org.lxh.demo13.listdemo;
  2. import java.util.LinkedList;
  3. public class LinkedListDemo02 {
  4. public static void main(String[] args) {
  5. LinkedList link = new LinkedList();
  6. link.add("A");
  7. // 向链表中增加数据
  8. link.add("B");
  9. // 向链表中增加数据
  10. link.add("C");
  11. // 向链表中增加数据
  12. System.out.println("1-1、element()方法找到表头:"
    + link.element());
  13. System.out.println("1-2、找完之后的链表内容:" + link);
  14. System.out.println("2-1、peek()方法找到表头:" + link.peek());
  15. System.out.println("2-2、找完之后的链表内容:" + link);
  16. System.out.println("3-1、poll()方法找到表头:" + link.poll());
  17. System.out.println("3-2、找完之后的链表内容:" + link);
  18. }
  19. }

程序运行结果:

  1. 1-1、element()方法找到表头:A
  2. 1-2、找完之后的链表内容:[A, B, C]
  3. 2-1、peek()方法找到表头:A
  4. 2-2、找完之后的链表内容:[A, B, C]
  5. 3-1、poll()方法找到表头:A
  6. 3-2、找完之后的链表内容:[B, C]

(3)实例操作三:以先进先出的方式取出全部的数据

在LinkedList类中存在poll()方法,通过循环此操作,就可以把内容全部取出(以先进先出(FIFO)的方式)。

范例:以FIFO方式取出内容

  1. package org.lxh.demo13.listdemo;
  2. import java.util.LinkedList;
  3. public class LinkedListDemo03 {
  4. public static void main(String[] args) {
  5. LinkedList link = new LinkedList();
  6. link.add("A");
  7. // 向链表中增加数据
  8. link.add("B");
  9. // 向链表中增加数据
  10. link.add("C");
  11. // 向链表中增加数据
  12. System.out.print("以FIFO的方式输出:"); // 信息输出
  13. for (int i = 0; i < link.size() + 1; i++) {// 循环输出
  14. System.out.print(link.poll() + "、"); // 取出表头
  15. }
  16. }
  17. }

程序运行结果:

  1. 以FIFO的方式输出:A、B、C
0 0