LinkedList子类的作用是什么

本篇文章为大家展示了LinkedList子类的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

公司主营业务:做网站、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出高邑免费做网站回馈大家。

LinkedList子类

在List接口中还有一个比较常用的子类:LinkedList,这个类通过名称就可以发现其特点:基于链表的实现。那么首先观察一下LinkedList的定义:

public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable

LinkedList子类的作用是什么LinkedList类的继承关系

范例:使用LinkedList实现集合操作

import java.util.LinkedList;import java.util.List;public class JavaAPIDemo {public static void main(String[] args) throws Exception {
        List all = new LinkedList();all.add("Hello");all.add("Hello");all.add("Wolrd");all.add("MLDN");all.forEach(System.out::println);   //Hello Hello World MLDN
    }
}

如果现在只是观察程序的功能会发现和ArrayList使用是完全一样的,但是其内部实现机制是完全不同的,首先观察LinkedList构造方法里面并没有提供像ArrayList那样的初始化大小的方法,而只是提供了无参构造处理:“public LinkedList()”。随后观察add()方法的具体实现。

public boolean add(E e) {
    linkLast(e);return true;
}

在之前编写自定义链表时,是判断了传入数据是否为null,如果为null则不进行保存,但在LinkedList中并没有做这样的处理,而是所有的数据都可以保存,而后此方法调用了linkLast()方法(在最后一个节点后追加)。

void linkLast(E e) {
    final Node l = last;
    final Node newNode = new Node<>(l, e, null);
    last = newNode;if (l == null)
        first = newNode;elsel.next = newNode;
    size++;
    modCount++;
}

在LinkedList类中保存的数据都是利用Node节点进行的封装处理,同时为了提高程序执行性能,每一次都会保存上一个追加的节点(最后一个节点),就可以在增加数据的时候避免递归处理,在增加数据时要进行数据保存个数的追加。

通过上面的分析,可以发现LinkedList封装的就是一个链表实现。
面试题:
请问ArrayList与LinkedList有什么区别?

  • ArrayList是数组实现的集合操作,而LinkedList是链表实现的集合操作;

  • 在使用List集合中的get()方法根据索引获取数据时,ArrayList的时间复杂度为“O(1)”、而LinkedList时间复杂度为“O(n)”(n为集合的长度);

  • ArrayList在使用时默认的初始化对象数组的大小长度为10,如果空间不足则会采用2倍形式进行容量的扩充,如果保存大数据量的时候有可能会造成垃圾的产生以及性能的下降,但是这时候可以使用LinkedList类保存。

上述内容就是LinkedList子类的作用是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


当前文章:LinkedList子类的作用是什么
文章分享:http://pwwzsj.com/article/gsheds.html