ホームページ  >  記事  >  Java  >  JavaのArrayListと一般的な配列の違いは何ですか?どれくらい効率的ですか?

JavaのArrayListと一般的な配列の違いは何ですか?どれくらい効率的ですか?

王林
王林転載
2019-11-25 13:37:353225ブラウズ

JavaのArrayListと一般的な配列の違いは何ですか?どれくらい効率的ですか?

次の列では、java クイック スタート列で ArrayList と一般的な配列の違いを紹介します。

ArrayList とは何ですか?

ArrayList の実装原理は、実際には配列 (動的配列) です。

動的配列と一般配列の違いは何ですか?

Java の配列と比較して、ArrayList の容量は動的に増加する可能性があります。

ArrayList はどのくらい効率的ですか?

ArrayList はスレッドセーフではないため、より効率的ですが、シングルスレッド環境でのみ使用できます。

ArrayList は主にどのクラスを継承し、どのインターフェイスを実装しますか?

ArrayList は主に AbstractList クラスを継承し、ListRandomAccessCloneable を実装します。 SerializableInterface

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 サイトの他の関連記事を参照してください。

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