ホームページ >Java >&#&ベース >JavaでArrayListコレクションを初期化する方法

JavaでArrayListコレクションを初期化する方法

王林
王林転載
2019-11-26 15:13:012697ブラウズ

JavaでArrayListコレクションを初期化する方法

概要

ArrayList は、動的配列に基づく非スレッドセーフなコレクションです。ArrayList の要素は空で繰り返すことができます。同時に順序付けされます(読み取りと保存の順序は一貫しています)。

ArrayList は AbstractList を継承し、ListRandomAccess (すぐにアクセス可能)、Cloneable (複製可能)、java を実装します。 .io.Serializable (シリアル化をサポート)

その他の無料関連ビデオの推奨事項:java ビデオ

ArrayList を初期化するには 3 つの方法があります:

1. パラメーターなしの構築、デフォルトの長さは 10 で、これは最も一般的に使用される初期化方法です:

/**
  * Constructs an empty list with an initial capacity of ten.
  */
  public ArrayList() {
      this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
  }

この時点では、ソース コード ご覧のとおり、コードは 1 行だけです: this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA、定義された DEFAULTCAPACITY_EMPTY_ELEMENTDATA はソース コード内にあります:

/**
  * Shared empty array instance used for default sized empty instances. We
  * distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when
  * first element is added.
  */
 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

コメントから次のことがわかります。空の配列はソース コードでデフォルトの size として定義され、最初の要素が追加されるときに配列をどれだけ拡張するかを決定します。このロジックについては、要素を追加する次のセクションで説明します。

2. 初期化の長さを指定します:

/**
  * Constructs an empty list with the specified initial capacity.
  * @param  initialCapacity  the initial capacity of the list
  * @throws IllegalArgumentException if the specified initial capacity
  *         is negative
  */
  public ArrayList(int initialCapacity) {
     if (initialCapacity > 0) {
         this.elementData = new Object[initialCapacity];
     } else if (initialCapacity == 0) {
         this.elementData = EMPTY_ELEMENTDATA;
     } else {
         throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity);
     }
  }

3. Collection オブジェクトを使用して

/**
     * Constructs a list containing the elements of the specified
     * collection, in the order they are returned by the collection's
     * iterator.
     *
     * @param c the collection whose elements are to be placed into this list
     * @throws NullPointerException if the specified collection is null
     */
    public ArrayList(Collection<? extends E> c) {
        elementData = c.toArray();
        if ((size = elementData.length) != 0) {
            // c.toArray might (incorrectly) not return Object[] (see 6260652)
            if (elementData.getClass() != Object[].class)
                elementData = Arrays.copyOf(elementData, size, Object[].class);
        } else {
            // replace with empty array.
            this.elementData = EMPTY_ELEMENTDATA;
        }
    }

関連記事のチュートリアル推奨事項 :Java 開発の概要

以上がJavaでArrayListコレクションを初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。