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