ArrayとArrayListの違い
ArrayおよびArrayListとは何ですか?
ArrayとArrayListの両方は、Javaプログラムで頻繁に使用されるインデックスベースのデータ構造です。概念的に言えば、ArrayListは内部的に配列によってサポートされていますが、2つの違いを理解することは、優れたJava開発者になるための鍵です。まずは基本的なステップ、特にコーディングを始めたばかりの初心者です。どちらもプリミティブまたはオブジェクトのいずれかになるJavaの要素を格納するために使用されますが、機能とパフォーマンスの面でかなりの差があります。 2つの主な違いは、ArrayListは静的であるのに対し、ArrayListは本質的に動的であることです。この記事では、2つをさまざまな面で比較して、1つを選択できるようにします。
<!配列と配列の違いサイズ変更可能
- 2つのデータ構造の主な顕著な相違点の1つは、配列が本質的に静的であるということです。つまり、配列は固定長のデータ型ですArrayListは本質的に動的です。つまり、可変長データ構造です。技術的には、Arrayオブジェクトが作成されると、Arrayの長さを変更または変更することはできません。これは、同じデータ型の要素の順次収集を含みます。 Javaでの配列は、C / C ++での配列とは異なる働きをします。一方、ArrayListはサイズを変更することができ、配列は必要に応じて拡大できます。動的なデータ構造であるため、要素をリストに追加したり削除したりすることができます。
<!ジェネリッククラスの配列をJavaで作成することはできません。したがって、配列とジェネリックは手に入らないので、配列が共変するという基本的な理由のために汎用配列を作成することは不可能です。ジェネリックは不変である。配列は固定長のデータ構造体ですが、特定のデータ型の同じクラスまたはプリミティブのオブジェクトを含みます。したがって、Arrayオブジェクトの作成時に指定したデータ型以外の異なるデータ型を格納しようとすると、単に「ArrayStoreException」がスローされます。一方、ArrayListは型安全性を確保するためにGenericsをサポートしています。
<! - 3 - >- プリミティブ
int、double、long、charなどのプリミティブデータ型は、ArrayListでは使用できません。それはむしろオブジェクトを保持し、プリミティブはJavaではオブジェクトと見なされません。一方、配列は、オブジェクトを格納するためのJavaで最も効率的なデータ構造の1つであるため、プリミティブとオブジェクトをJavaで保持することができます。これは、同じタイプまたは異なるタイプのオブジェクトを保持するように設計された集約されたデータ型です。
Length- Arrayの長さを取得するには、Arrayで操作を実行するための長さを知っている必要があるため、コードでlength属性にアクセスする必要があります。ArrayListはsize()メソッドを使用してArrayListのサイズを決定しますが、Arrayの長さを決定するのとは多少異なります。 size()メソッドの属性は、ArrayList内の要素の数を決定します。これは、ArrayListの容量です。
例
- の場合:
public class ArrayLengthTest {
public static void main(String [] args){ ArrayList arrList = new ArrayList();
String [] items = {"One"、 "Two"、 "Three"};
for(String str:items){
arrList。 add(str);
}
int size = items。サイズ();
システム。でる。 println(size);
}
実装
Arrayは動的に作成されるJavaのネイティブプログラミングコンポーネントであり、要素を保持する代入演算子を使用し、ArrayListはadd()属性を使用して要素を挿入します。 ArrayListは、指定されたメソッドのセットを使用して要素にアクセスし、要素を変更するJavaのコレクションフレームワークのクラスです。 ArrayListのサイズは、動的に増減できます。配列内の要素は連続したメモリ位置に格納され、そのサイズは静的なままです。
パフォーマンス
ArrayListはArrayによってサポートされているため、両方のデータ構造が同じようなパフォーマンスを提供しますが、CPU時間とメモリ使用量の点では、たとえば、配列のサイズを知っていれば、ArrayListを使うことになります。ただし、Arrayを反復処理するのは、ArrayListを反復処理するよりも少し速いです。プログラムに多数のプリミティブが含まれる場合、配列はArrayListよりも時間とメモリの両方で大幅に優れたパフォーマンスを発揮します。配列は、コレクションの実装で使用できる低レベルのプログラミング言語です。ただし、パフォーマンスは実行している操作によって異なる場合があります。
- 配列対。 Arraylist
Array
- ArrayList
Arrayは、配列オブジェクトが作成されると長さを変更できない固定長のデータ構造です。