[ソース]読むのArrayList

著作権:https://blog.csdn.net/qq_21852449/article/details/85225368
  1. データ構造
    シーケンシャル構造
    ここに画像を挿入説明
  2. 継承と実装クラス
    ここに画像を挿入説明
  3. プロパティのクラス
//列表最大长度
private static final int MAX_ARRAY_SIZE = 2147483639;
//存放数据的数组,不会序列化
transient Object[] elementData;
//默认长度  10
private static final int DEFAULT_CAPACITY = 10;
//结构性修改数
protected transient int modCount = 0;
  1. クラスのコンストラクタ
//传入一个ArrayList新建一个ArrayList
public ArrayList(Collection<? extends E> var1) {...}

public ArrayList(int var1) {...}

public ArrayList() {}
  1. カーネル
    5.1追加(E電子){... }
    {...}膨張法)(成長を呼び出し、その都度電流の膨張の0.5倍の長さである
    5.2 SET(INTインデックス、E E){...}
    5.3のindexOf(オブジェクトVAR1は){... }
public int indexOf(Object var1) {
    int var2;
    if (var1 == null) {
        for(var2 = 0; var2 < this.size; ++var2) {
            if (this.elementData[var2] == null) {
                return var2;
            }
        }
    } else {
        for(var2 = 0; var2 < this.size; ++var2) {
            if (var1.equals(this.elementData[var2])) {
                return var2;
            }
        }
    }

    return -1;
}
  1. 概要
    ArrayListには、それぞれ、その特殊なアプリケーションシナリオを持っており、LinkedListの。利点は、挿入要素を必要とするという欠点が主要栄養素、効率が高くない移動し、ランダムリードです。
    さらに、ArrayListのAbstractCollectionの継承は、コンストラクタによって異なる構造の間で切り替えることができます。

おすすめ

転載: blog.csdn.net/qq_21852449/article/details/85225368