次の列では、java クイック スタート列で ArrayList と一般的な配列の違いを紹介します。
ArrayList とは何ですか?
ArrayList の実装原理は、実際には配列 (動的配列) です。
動的配列と一般配列の違いは何ですか?
Java の配列と比較して、ArrayList の容量は動的に増加する可能性があります。
ArrayList はどのくらい効率的ですか?
ArrayList はスレッドセーフではないため、より効率的ですが、シングルスレッド環境でのみ使用できます。
ArrayList は主にどのクラスを継承し、どのインターフェイスを実装しますか?
ArrayList は主に AbstractList
クラスを継承し、List
、RandomAccess
、Cloneable
、 を実装します。 Serializable
Interface
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable
RandomAccess
は、高速にアクセスできることを意味します。ArrayList は、時間計算量 O(1)[^1] の添え字に基づいてアクセスできます。要素。 ArrayList の基礎となる構造は配列であるため、連続したメモリ空間を占有し、その長さが配列のサイズになります。したがって、配列の欠点もあり、空間効率があまり高くありませんが、利点もあります。つまり、クエリ速度が速くなり、時間効率が良くなります。
ArrayList の定数と変数とは何ですか?
// 序列ID private static final long serialVersionUID = 8683452581122892189L; // ArrayList默认的初始容量大小 private static final int DEFAULT_CAPACITY = 10; // 空对象数组,用于空实例的共享空数组实例 private static final Object[] EMPTY_ELEMENTDATA = {}; // 空对象数组,如果使用默认的构造函数创建,则默认对象内容是该值 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; // 存放当前数据,不参与序列化 transient Object[] elementData; // non-private to simplify nested class access // list大小 private int size;
コレクション内の要素が配列の指定された長さを超えると、配列が拡張されます。この拡張操作が、特にデータ量が多い場合に ArrayList の格納操作が遅くなる理由です。規模が大きいため、拡張にはさらに時間がかかります。
以上がJavaのArrayListと一般的な配列の違いは何ですか?どれくらい効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。