ArrayList源码分析

简单介绍
ArrayList本质上也是继承于抽象类AbstractList,且实现List、随机数、克隆、以及序列化的Serializable。

常量定义
1.初始化大小 容量为10
2.Object[] EMPTY_ELEMENTDATA 动态数组,用来保存空实例

重要的几个方法
1.trimToSize。ArrayLsit每次申请空间是按照1.5倍+1来申请的,内存不够的时候可以使用这个方法来减少多出来的一些空间。
2.ensureCapacity-ensureCapacityInternal-ensureExplicitCapacity。
扩容方法,如果参数大于低层数组长度的1.5倍,那么这个数组的容量就会被扩容到这个参数值,如果参数小于低层数组长度的1.5倍,那么这个容量就会被扩容到低层数组长度的1.5倍。
3.JDK1.8后,增加了许多方法。用于并行计算的spliterator, 分割数组的SubList等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ArrayList是在Java中最常用的集合之一,其本质上可以当做是一个可扩容的数组,可以添加重复的数据,也支持随...
    ShawnIsACoder阅读 3,624评论 4 7
  • 前言 跟着我往下看(这里只讲顺序存储方式的线性表): 不明白?继续往下看 下面开始进入正题:ArrayList就是...
    小朱v阅读 3,199评论 0 1
  • ArrayList ArrayList就是传说中的动态数组,就是Array的复杂版本,它提供了如下一些好处:动态的...
    史路比阅读 1,599评论 0 0
  • ArrayList 认识 ArrayList是最常见以及每个Java开发者最熟悉的集合类了 elementData...
    zlb阅读 1,137评论 0 0
  • 啊!我爱花城,我爱花城的一年四季,我更爱把花城点缀得如此绚丽的人们!
    杜仁义阅读 3,635评论 0 2