黑马程序员_日记37_LinkedList概述及特有方法演示

 ——- 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());


    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值