List接口的常用子类:LinkedList

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

(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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值