又是我们经典的数据结构!!
虽然它们都是list,但是内部的结构不同:
------------------------------------------------Arraylist ------------------------------------------------------------------
Arraylist是序号数组,每一个元素都有一个自己的index,也就是索引
嗨嗨嗨!看到这个索引你就知道了!Arraylist查询很快!!!
但是缺点就是修改不是很方便,这个数据结构修改的特点是牵一发而动全身的:
比如删除一个元素,需要移动整个元素来补齐刚刚空缺的位置,就像是体育课有一列空了一位同学,那么这一列后面的同学就来补齐整个列队一样
Arraylist操作中间的元素比较麻烦,那么头和尾呢?
头尾缺失快,但是也有弊端💦哈哈哈
如果空间还足够的时候,还是比较快的:时间复杂度为O(1)
当插入并且扩容时,就还是会变慢:O(n)
总之Arraylist适合查询,而不是修改操作
------------------------------------------------Linked list------------------------------------------------------------------------------------
看到Linked list就知道和链表肯定有关系!!
这个实际上就是双向链表
看到链表就知道修改比较方便了!!
链表修改只需要修改某两个指针的指向,而其他元素是不需要移动的,整体的性能非常快!
但是查询的时候只依靠指针移动来查询,因此查询性能不怎么样
总之Linkedlist是修改快,但是查询不怎么样
------------------------------------------------总结------------------------------------------------------------------------------
1.Array list 适用于 查询场景
2.linked list适用于 修改场景
实际使用的时候根据场景需求选择即可
嗨嗨嗨嗨!!!!实际上根据字面英文意思理解性记忆即可,Array数组,Linked链表
然后再根据不同的意思来延伸即可:比如链表就是适合修改,Array有索引就是查询快