![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java ArrayList 源码分析
ArrayList源码分析
叫我王员外就行
我的个人笔记,如果有幸对您有帮助,欢迎点赞…………
展开
-
Java之ArrayList源码分析(第十篇:总结回顾)
0、类结构public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{}a、范型类b、父类是AbstractListc、实现接口List、RandomAc...原创 2020-05-08 11:56:42 · 316 阅读 · 0 评论 -
Java之ArrayList源码分析(第九篇:ListItr迭代器分析)
ArrayList中重写了基类AbstractList的两个listIterator方法,这两个方法均会返回一个ListItr对象,ListItr是作为增强型的迭代器对象而设计的,我们接下来就一探究竟0、类结构 private class ListItr extends Itr implements ListIterator<E> { …………省略很多代码………… }ListItr定义在ArrayList内部,作为ArrayList的普通内部类,扩展...原创 2020-05-22 11:29:59 · 649 阅读 · 0 评论 -
Java之ArrayList源码分析(第八篇:四个内部类的基本介绍)
注意:本文源码基于JDK1.8ArrayList内部定义了四个内部类,即有普通内部类、也有静态内部类、那么他们各自的用途是什么呢?本文将做出解答原创 2020-05-21 10:57:45 · 505 阅读 · 0 评论 -
Java之ArrayList源码分析(第七篇:查找元素)
(注意:本文源码基于JDK1.8) ArrayList是基于数组的线性表容器,前面学习了添加元素、删除元素、现在抓紧学习一下获取元素的功能是怎样实现的?get方法,用于从ArrayList获取一个指定下标的元素,第一个元素的下标是0indexOf方法,用于从头到尾的从ArrayList查找一个指定元素对象的下标lastIndexOf方法,用于从尾部到头部的从ArrayList中查找一个指定元素对象的下标get方法 public E get(int inde...原创 2020-07-23 20:24:27 · 6977 阅读 · 0 评论 -
Java之ArrayList源码分析(第六篇:修改元素)
temp原创 2020-08-13 21:24:13 · 3691 阅读 · 0 评论 -
Java之ArrayList源码分析(第五篇:遍历元素)
遍历源码全部拿出来原创 2020-11-03 19:46:09 · 840 阅读 · 0 评论 -
Java之ArrayList源码分析(第四篇:扩容机制)
手动触发的扩充数组容量的方法ensureCapacity()ensureCapacity(int)方法分析 public void ensureCapacity(int minCapacity) { int minExpand = (elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA) // any size if not default element table ? 0原创 2020-10-25 23:50:30 · 432 阅读 · 0 评论 -
Java之ArrayList源码分析(第三篇:删除元素)
(注意:本文基于JDK1.8)删除元素的4个方法清空元素的clear()方法remove(int)方法分析 public E remove(int index) { rangeCheck(index); modCount++; E oldValue = elementData(index); int numMoved = size - index - 1; if (numMoved >原创 2020-10-25 09:41:40 · 1042 阅读 · 0 评论 -
Java之ArrayList源码分析(第二篇:添加元素)
(注意:本文基于JDK1.8)ArrayList添加元素的方法,共计4个 我将依次分析它们是如何实现添加单个元素或者添加多个元素的……add(E)方法分析 public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; }...原创 2020-10-21 14:00:01 · 4294 阅读 · 0 评论 -
Java之ArrayList源码分析(第一篇:创建对象)
ArrayList操作元素的时间复杂度插入尾部:O(1)插入中间:O(n)删除尾部:O(1)删除中间:O(n)查找元素:O(n)访问元素(下标):O(1)为什么时间复杂度是这样?本系列文章将会解答它…………创建ArrayList对象的三种方式0、无参 public ArrayList() { this.elementData...原创 2020-03-16 13:52:28 · 2063 阅读 · 0 评论