这个就跟数据结构有关系了,可以参考一些数据结构中链表的知识
arraylist 顺序表,用数组的方式实现。想想数组要查询那个元素只给出其下标即可,所以才说arraylist随机访问多的场景比较合适。但是如果删除某个元素比如第 i 个元素,则要将 i 之后的元素都向前移一位以保证顺序表的正确,增加也是一样,要移动多个元素。要多次删除增加的话是很低效的。
而LinkedList是双向链表,注意是链表。要查询只能头结点开始逐步查询,没有什么给出下标即可直接查询的便利,需要遍历。但是,如果要增加后删除一个元素的话,只需要改变其前后元素的指向即可。不需要像arraylist那样整体移动。所以才说多用于增删多的场合
表达能力有限。。想要比较严谨的解释可以看一看一些参考书上的相关内容。 |