码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 探索 ArrayList 原理 - 第一节 ArrayList 集合底层数据结构


    文章目录

      • 探索 ArrayList 原理
        • 1. ArrayList 集合底层数据结构
          • 1.1 ArrayList集合介绍
          • 1.2 思考数组相关的几个问题
          • 1.3 数组结构的优点缺点

    探索 ArrayList 原理

    jdk1.8 API
    黑马教学视频: java进阶教程丨全面深入解析ArrayList原理(源码分析+面试讲解)

    1. ArrayList 集合底层数据结构

    • ArrayList底层就是一个数组,数组会随着数据的增长而扩容,数组的扩容就是建立一个新的容量大的数组,然后把旧数组上面的数据复制进新数组
    1.1 ArrayList集合介绍
    • List接口可调整大小的数组的实现
    • 数组:一旦初始化长度就不可以发生改变;
    1.2 思考数组相关的几个问题
    • 需求1: 添加元素-已知数组[9,5,2,7]的长度为4,如何追加一个元素;
    • 需求2: 删除元素-已知数组[9,5,2,7],如何删除2索引处对应的元素;
    • 需求3: 修改元素-已知数组[9,5,2,7],如何将1索引处的元素修改为6;
    • 需求4: 查询元素-已知数组[9,5,2,7],如何获取数组中1索引对应的元素;
    • 解答需求1
      • 1、首先明确一个问题,在java中,我们在初始化数据的时候,必须提供数组的大小;
      • 2、如果要追加元素,只能是创建新的合适容量的数组,进行追加新的元素;
      • 即要创建新数据,又要把数据复制过来,移动位置
    • 解答需求2
      • 1、初始化数组的时候已经提供了数组的大小,因此长度已经固定,无法直接删除数组中的元素
      • 2、如果要删除元素,只能是创建新数组,将保留的数据复制到新的数组即可;
      • 即要创建新数据,又要把数据复制过来,移动位置
    • 解答需求3
      • 根据索引位置,直接替换为新值即可
    • 解答需求4
      • 根据索引位置,直接查询取出即可;
    1.3 数组结构的优点缺点
    • 1、数组查询快,根据地址和索引直接获取元素;
    • 2、数组增删慢,每次都需要创建新数组,且移动元素位置;
  • 相关阅读:
    vscode 设置左边文件栏缩进
    【Filament】基于物理的光照(PBR)
    Tmall商城系统后台管理订单模块分析
    centos安装TDengine
    Python —— hou.Node class
    拼多多商品评论API接口(item_review-获得拼多多商品评论接口),拼多多评论API接口
    为XDR扩展威胁检测响应提供响应解决方案
    安卓讲课笔记4.1 安卓按键事件
    阿里三面:Redis大key怎么处理?
    Advanced .Net Debugging 9:平台互用性
  • 原文地址:https://blog.csdn.net/pymxb1991/article/details/126558819
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号