配列と配列の違い

Anonim

提供します。配列は、要素の集合を格納するために最も一般的に使用されるデータ構造です。ほとんどのプログラミング言語は、配列を簡単に宣言し、配列内の要素にアクセスするためのメソッドを提供します。 arraylistは、サイズが大きくなる動的配列として見ることができます。この理由のため、プログラマーはarraylistの定義時にarraylistのサイズを知る必要はありません。

配列とは何ですか?図9に示されているのは、通常、値を宣言して配列に割り当てるために使用されるコードです。図2は、アレイがメモリ内でどのように見えるかを示しています。

int値[5];値[0] = 100;値[1] = 101;値[2] = 102;

値[3] = 103;値[4] = 104;図1:値を宣言してアレイに割り当てるためのコード100 999 10 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 10インデックス:

3 図2:メモリに格納された配列

上のコードは、5つの整数を格納できる配列を定義し、0から4までのインデックスを使ってアクセスします。配列の重要な特性の1つは、全体の配列は単一のメモリブロックとして割り当てられ、各要素は配列内に独自の空間を確保します。配列が定義されると、そのサイズは固定されます。したがって、コンパイル時に配列のサイズが不明な場合は、十分な大きさの配列を安全側に定義する必要があります。しかし、ほとんどの場合、私たちは割り当てた数よりも少ない数の要素を実際に使用しようとしています。したがって、実際にはかなりの量のメモリが無駄になります。他方、「十分大きな配列」が実際には十分に大きくない場合、プログラムはクラッシュする。

Arraylistsとは何ですか?

arraylistは、サイズが大きくなる動的配列として見ることができます。したがってarraylistsは宣言時に必要な要素のサイズを知らない状況で使用するのが理想的です。 Javaでは、arraylistsはオブジェクトを保持できるだけで、プリミティブ型を直接保持することはできません(プリミティブ型をオブジェクト内に置くことも、プリミティブ型のラッパークラスを使用することもできます)。一般に、アライリストには、挿入、削除、および検索を実行するメソッドが用意されています。要素にアクセスする時間の複雑さはo(1)であり、挿入および削除はo(n)の時間複雑さを有する。 Javaでは、foreachループ、イテレータ、または単にインデックスを使用してarraylistsをトラバースすることができます。

配列とArraylistsの違いは何ですか?

配列とarraylistsは両方とも要素のコレクションを格納するために使用されるという意味では似ていますが、定義方法が異なります。配列が定義されている場合は、配列のサイズを指定する必要がありますが、実際のサイズを知らなくてもarraylistを定義できます。 arraylistが定義された後に要素を追加することができます。これは配列では不可能です。しかし、Javaでは、arraylistsはプリミティブ型を保持することはできませんが、配列はプリミティブ型を保持するために使用できます。しかし、サイズを変えることができるデータ構造が必要な場合は、arraylistが最適です。