zoukankan      html  css  js  c++  java
  • 23、数据结构之数组和链表

    数组数据结构

    特点:
    查询和修改快
    增加和删除慢

    ArrayList和Vector的底层是使用数组的数据结构
    在ArrayList中初始化的长度是10,如果长度不够用了,每次会增加之前长度的50%,然后将旧的集合中的数据拷贝到新的集合中。Vector每次扩容的长度是之前的一倍
    数组结构图:

    为什么查询和修改快?
    查询和修改时直接通过数组的下标就能快速定位到相应的位置。
    为什么增加和删除慢?
    数组里面内存地址是连续的,如果要做增加或者删除时势必要修改长度,这样可能会导致牵一发而动全身的操作,比如在下标是2位置上的元素进行删除,那么后面每个位置上面的元素都会向前移动。

    链表数据结构

    特点:
    增加和删除快
    查询和修改慢

    LinkedList的底层使用的是链表数据结构,可以将链表看做是一条断开的车链子,两两相扣。
    链表结构图

    为什么增加和删除快?
    链表里面的内存地址不是连续的,每个元素里面都保留着上一个元素和下一个元素的内存地址(首尾除外),如果要增加或删除元素时,只有与他相邻的两个位置上的元素发生变化,其他元素不用任何改变。
    为什么查询和修改慢?
    链表里面的内存地址不是连续的,要查找的话,需要从头或者尾部挨个查找,不能直接定位。

  • 相关阅读:
    Jenkins安装以及邮件配置
    TUXEDO管理命令总结
    QTP的退出函数
    QTP 启动应用软件方法
    Robot framework 和RIDE 关系
    使用pycharm编写和运行RF脚本
    刷题-力扣-102. 二叉树的层序遍历
    刷题-力扣-反转链表
    刷题-牛客-判断链表中是否有环
    刷题-力扣-278. 第一个错误的版本
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10131110.html
Copyright © 2011-2022 走看看