zoukankan      html  css  js  c++  java
  • 4.22JavaArrayList的底层实现

    4.22JavaArrayList的底层实现

    ArrayList的底层实现原理

    ArrayList底层是用数组实现的存储

    特点:

    • 查询效率高、增删效率低

    • 线程不安全

    一般情况下仍然使用ArrayList,因为多数情况不涉及频繁的修改

    频繁修改操作:---LinkList

    线程安全:---vector

    ArrayList源码---为什么ArrayList可以存放任意数量的对象且长度不限?

    采用数组扩容的方式实现

    先定义一个长度的数组,当超过长度是再去定义一个长度更长的数组,JDK的底层源码是通过算法原长度 + (原长度/2))去定义新的数组的长度

    老的数组的内容拷贝到新的数组中

    新的内容继续放入新的数组后面

    ArrayList源码解读

    ArrayList Remove源码

    将原数组的后一位索引值拷贝到所要移除的元素的索引位置---所以说如果数组长度很长要用ArrayList改的话就会拷贝索要修改的索引后面所有的元素往前移,费资源且耗时

    源码解读:

     

    It's a lonely road!!!
  • 相关阅读:
    java 基础语法 2
    hdu4570Multi-bit Trie
    poj1244Slots of Fun
    二维凸包模板
    花神的数论题(数位dp)
    poj1113Wall(凸包)
    poj1066Treasure Hunt(线段相交)
    poj1039Pipe(直线交点、叉积)
    hdu4588Count The Carries
    hdu2475Box(splay树形转线性)
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14691068.html
Copyright © 2011-2022 走看看