美文网首页如果心满意足,谁又去准备面试?
面试准备——ArrayList、Linked原理与比较

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

作者: So_ProbuING | 来源:发表于2021-04-09 11:57 被阅读0次

    从一个面试题开始:


    面试题

    数组

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


    数组

    顺序表

    然后就有了顺序表的ArrayList


    ArrayList

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


    顺序表操作

    链表

    链表的数据结构

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

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

    链表

    顺序表与链表

    顺序表与链表的比较
    • 由于顺序表时物理上连续的所以查找和修改数据比较快,而链表在物理空间上不连续,在逻辑上连续所以删除增加元素快
    • 但是缺点是 顺序表增加和删除元素要大量的移动数据,所以顺序表增删慢,链表在物理上不连续,所以链表查询需要进行轮询数据,所以链表查找会比较耗时

    相关文章

      网友评论

        本文标题:面试准备——ArrayList、Linked原理与比较

        本文链接:https://www.haomeiwen.com/subject/wqsikltx.html