【Java类集】_LinkedList类笔记(实例亲测)

【Java类集】_LinkedList类笔记

本章目标:

掌握LinkedList与List接口的关系
掌握Queue接口的作用


LinkedList子类与Queue接口

LinkedList表示的是一个链表的操作类,此类定义如下:

public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>,Queue<E>,Cloneable,Serializable

Queue是接口Collection的子接口,此接口定义如下:

public interface Queue<E> extends Collection<E>

Queue接口定义方法:
No.    方法            类型    描述
1    boolean add(E e)    普通    将指定的元素插入此链表结尾(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException。
2    E element()        普通    获取链表的表头,但是不移除此队列的头。
3    boolean offer(E e)    普通    将指定的元素插入此链表的结尾(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。
4    E peek()         普通    获取但不移除此队列的头;如果此队列为空,则返回 null。
5    E poll()        普通    获取并移除此队列的头,如果此队列为空,则返回 null。
6    E remove()        普通    获取并移除此队列的头。


LinkedList中操作链表的部分方法

No.    方法                类型    描述
1    public void addFirst(E o)    普通    在链表开头增加元素
2    public void addLast(E o)    普通    在链表结尾增加元素
3    public boolean offer(E o)    普通    将指定元素增加到链表的结尾
4    public E removeFirst()        普通    删除链表的第一个元素
5    public E removeLast()        普通    删除链表的最后一个元素

LinkedList 本身大量的扩展了Queue接口和List接口的操作。所以,在使用时最好直接使用LinkedList类完成操作。
为链表的开头和结尾增加数据(使用自身提供的方法)

import java.util.LinkedList;
public class LinkedListDemo01{
    public static void main(String args[]){
        LinkedList<String> link = new LinkedList<String>();
        link.add("A");
        link.add("B");
        link.add("C");
        System.out.println("初始化链表:"+link);
        link.addFirst("X");
        link.addLast("Y");
        System.out.println("增加头和尾之后链表:"+link);
    }
}



输出:

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

对于链表也可以找到其表头(直接Queue提供的方法)
import java.util.LinkedList;
public class LinkedListDemo02{
    public static void main(String args[]){
        LinkedList<String> link = new LinkedList<String>();
        link.add("A");
        link.add("B");
        link.add("C");
        System.out.println("1-1、element()方法找到表头"+link.element());
        System.out.println("1-2、找完之后的链表内容:"+link);
        System.out.println("1-3、peek()方法找到表头:"+link.peek());
        System.out.println("1-4、找完之后的链表内容:"+link);
        System.out.println("1-5、poll()方法找到表头:"+link.poll())
        System.out.println("1-6、找完之后的链表内容:"+link);
    }
}


输出:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值