logo

配列と配列リストの違い

Javaでは、 配列 そして 配列リスト はよく知られたデータ構造です。配列は Java によって提供される基本的な機能ですが、 配列リスト Java Collections フレームワークのクラスです。に属します java.util パッケージ。

Java配列

アン 配列 動的に作成されるオブジェクトです。これは、同じ型の値を一定数保持するコンテナとして機能します。連続したメモリ位置があります。配列が作成されると、そのサイズを変更することはできません。次のステートメントを使用して配列を作成できます。

 int array[]=new int[size]; 

上記のステートメントは、指定されたサイズの配列を作成します。そのサイズを超えるものを追加しようとすると、スローされます ArrayIndexOutOfBoundsException 。例えば:

 int arr[]=new int[3]; //specified size of array is 3 //adding 4 elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; 

Java ArrayList クラス

Javaでは、 配列リスト コレクション フレームワークのクラスです。それは実装します リスト、コレクション、反復可能、クローン可能、シリアル化可能 、 そして ランダムアクセス インターフェース。伸びる 抽象リスト クラス。

次のステートメントを使用して、ArrayList のインスタンスを作成できます。

 ArrayList arrayList=new ArrayList(); 

ArrayList は、Java の配列によって内部的にサポートされています。 ArrayList でのサイズ変更操作には、新しい配列と古い配列から新しい配列へのコンテンツのコピーが含まれるため、パフォーマンスが低下します。ネイティブに実装されたメソッドを呼び出します System.arraycopy(sec, srcPos, dest, destPos, length)

ArrayList にプリミティブ型を格納することはできません。したがって、オブジェクトのみを保存します。プリミティブ型をオブジェクトに自動的に変換します。たとえば、ArrayList オブジェクトを作成しました。

 ArrayList list=new ArrayList(); //object of ArrayList arrayObj.add(12); //trying to add integer primitive to the ArrayList 

JVM は、オートボックス化を通じてそれを Integer オブジェクトに変換します。

 ArrayList arrayObj=new ArrayList()//object of ArrayList arrayObj(new Integer(12)); //converts integer primitive to Integer object and added to ArrayList object 

類似点

  • Array と ArrayList はどちらも要素を格納するために使用されます。
  • Array と ArrayList はどちらも null 値を格納できます。
  • 重複した値を持つことができます。
  • 要素の順序は保持されません。

次の表では、配列と ArrayList の主な違いを説明します。

基礎 配列 配列リスト
意味 アン 配列 動的に作成されるオブジェクトです。これは、同じ型の値を一定数保持するコンテナとして機能します。連続したメモリ位置があります。 配列リスト Javaのクラスです コレクション フレームワーク。次のような人気のあるクラスが含まれています ベクトル、ハッシュテーブル 、 そして ハッシュマップ
静的/動的 配列は 静的 サイズ的には。 配列リストは 動的 サイズ的には。
サイズ変更可能 配列とは、 固定長 データ構造。 ArrayList は 可変長 データ構造。必要に応じてサイズを自動的に変更できます。
初期化 配列を直接または間接的に初期化する際には、配列のサイズを指定することが必須です。 サイズを指定せずに ArrayList のインスタンスを作成できます。 Java はデフォルト サイズの ArrayList を作成します。
パフォーマンス 実行します 速い サイズが固定されているため、ArrayList と比較して。 ArrayList は、Java の配列によって内部的にサポートされています。 ArrayList でのサイズ変更操作によりパフォーマンスが低下します。
プリミティブ/ジェネリック型 配列には両方を格納できます オブジェクト そして プリミティブ タイプ。 保管できません 原生的 「ArrayList」と入力します。プリミティブ型をオブジェクトに自動的に変換します。
値の反復 を使用しております のために ループまたは それぞれに 配列を反復処理するループ。 私たちは、 イテレータ ArrayList を反復処理します。
タイプセーフティ 配列は変換可能な型ではないため、ジェネリックスを配列と一緒に使用することはできません。 ArrayList では保存のみが可能です ジェネリック/ そのため、タイプセーフです。
長さ 配列は、 長さ 配列の長さを表す変数。 ArrayList は、 サイズ() ArrayList のサイズを決定するメソッド。
要素の追加 を使用して配列に要素を追加できます。 割り当て オペレーター。 Java が提供するのは、 追加() ArrayList に要素を追加するメソッド。
単一/多次元 配列は次のようにすることができます 多次元 ArrayList は常に 一次元

Java での配列の例

次の例では、長さ 4 の配列を単純に作成しています。

 public class ArrayExample { public static void main(String args[]) { //creating an array of integer type int arr[]=new int[4]; //adding elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; for(int i=0;i <arr.length;i++) { system.out.println(arr[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 12 2 15 67 </pre> <h2>Example of ArrayList in Java</h2> <p>In the following example, we have created an instance of ArrayList and performing iteration over the ArrayList.</p> <pre> import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 12.4 34.6 56.8 78.9 </pre> <hr></arr.length;i++)>

Java での ArrayList の例

次の例では、ArrayList のインスタンスを作成し、ArrayList に対して反復を実行しています。

 import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } 

出力:

Cの配列内の文字列
 12.4 34.6 56.8 78.9