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!!!
  • 相关阅读:
    uva 147 Dollars
    hdu 2069 Coin Change(完全背包)
    hdu 1708 Fibonacci String
    hdu 1568 Fibonacci
    hdu 1316 How Many Fibs?
    poj 1958 Strange Towers of Hanoi
    poj 3601Tower of Hanoi
    poj 3572 Hanoi Tower
    poj 1920 Towers of Hanoi
    筛选法——素数打表
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14691068.html
Copyright © 2011-2022 走看看