如果心满意足,谁又去准备面试?

面试准备——ArrayList、Linked原理与比较

2021-04-09  本文已影响0人  So_ProbuING

从一个面试题开始:


面试题

数组

像这种面试题,基本都是考察数据结构和算法的知识。所以我们需要先从数据结构开始说起
在java中,我们的线性存储结构最底层最基本的就是数组了。但是数组是物理上连续的大小确定的储存空间
通过数组 我们可以根据下标快速的获取数据。
但是由于数组的大小是确定的,所以当我们想要修改或者删除一个节点就比较麻烦了


数组

顺序表

然后就有了顺序表的ArrayList


ArrayList

其实顺序表的里面存储就是数组,顺序表的容器进行存储就是通过操作数组来进行的
所以顺序表通过index来查找容器内的数据就很直接
但是如果要添加或者删除顺序表中的元素,就会很复杂
当需要进行添加或者删除时,需要将要添加位置后面的数据进行位移,后面的整个数组都会发生变化(因为会有数据的位移)


顺序表操作

链表

链表的数据结构

链表中的数据由数据部分和指向部分组成,数据部分存储数据,指向部分指向下一个数据,这样的话所有数据都是逻辑相连在一起的

链表的出现就是解决顺序表中删除或者添加节点带来的耗时问题

链表

顺序表与链表

顺序表与链表的比较
上一篇下一篇

猜你喜欢

热点阅读