更新时间:2024-01-31 09:40:16
你们好,最近小艾特发现有诸多的小伙伴们对于linkedlist的底层数据结构,linkedlist这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、Linklist本质上是一个双向的链表,继承于AbstractSequentialList,双向链表的本质可以让linklist可以被当作基本的链表,或者堆栈,队列和双向队列等使用。
2、由于继承了list,因此linklist可以进行队列的操作,实现deque接口使得队列的使用可以双向,实现了cloneable,可以深层拷贝,实现了java.io.Serializable,因此linklist可以进行序列化操作。
3、需要注意的是,linklist和arraylist一样,是多线程不安全的
4、细心的读者发现了,我们现在所介绍的AbstractSequentialList是linklist继承的类,那么AbstractSequentialList到底是什么呢,里面又有怎么样的方法,下面我们来一一说明。
5、毕竟linklist是AbstractSequentialList的子类啊。
6、AbstractSequentialList实现了很多方法,其中就有基本的add,remove,get,set方法。需要注意的是,这些方法都是的!!linkedlist既然继承了,那么就也自然的拥有着同样的方法。
7、另外的AbstractSequentialList中,如果我们想要去实现这个list,只需要提供 listIterator() 和 size() 方法的实现,想要得到不可修改的双向链表,只需继续实现hasnext.next等队列方法。可修改的话就要实现迭代器下的set,再去实现add,remove就可以进行增加删除,当然了,提供一个无参默认构造器和集合类为参数的构造器也是需要的。
8、以上就是关于linkedlist的基本介绍,在下一篇中,我们将着重介绍linkedlist本身的代码以及实现方法,还有使用方法,也希望大家可以在读完本文之后可以有所收获,谢谢大家。
以上就是linkedlist这篇文章的一些介绍,希望对大家有所帮助。