introduction java arrays
このチュートリアルでは、Javaの配列の概念を紹介します。また、Java配列の下に、長さ、データ型、クローン作成、コピー、並べ替えなどの関連トピックを紹介しました。
プログラミングでは、常にデータを扱います。データはメモリ位置に保存する必要があり、データに時々アクセスしてそれに応じて処理するには、何らかの名前を付ける必要があります。これは変数によって行われます。
したがって、値10をメモリに格納する場合は、int型の変数を宣言し、値をint num = 10として格納します。
ここで、プログラム要件がint型の10個の変数を必要とするようなものであると仮定します。
この場合、次のようにint型の10個の変数を宣言する必要があります。
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
上記の宣言は、プログラマーに不必要なメンテナンスの負担をかけます。非常に多くの変数を宣言する代わりに、単一の変数を宣言してから、これらの10個の値すべてをこの変数に割り当ててはどうでしょうか。これは、配列を定義してそれに値を割り当てるときに行うことです。
Javaの配列から始めましょう。
学習内容:
Java配列
配列は、同じタイプのデータ要素を順番に保持するために使用されるデータ構造に他なりません。上記の例から、10個の変数の定義を単一の変数に変更し、添え字を使用して10個の値すべてを格納できます。
以下の方法でそれを行いましょう:
A (0) = 1;
A (1) = 2;
A (2) = 3;
A (3) = 4;
A (4) = 5;
A (5) = 6;
A (6) = 7;
A (7) = 8;
A (8) = 9;
A (9) = 10;
10個の値すべてをインデックスベースの変数に格納しました。最初のインデックスは0から始まります。したがって、最初の値は0になります。thインデックスと最後の値は9ですthインデックス。これらのインデックスは、添え字とも呼ばれます。
コンピュータのメモリでは、上記のアレイAは次のように表されます。
これで、配列を、同じデータ型の要素のコレクションであり、連続するメモリ位置に格納されている変数として定義できます。配列のサイズは宣言時に指定されるため、サイズは固定されています。
このチュートリアルで説明する配列は、固定サイズまたは静的配列です。 Javaは、サイズをその場で変更できる「ArrayList」と呼ばれる動的配列もサポートしています。 ArrayListについては後で詳しく説明します。
Javaの配列の特徴のいくつかを以下に示します。
- Javaでは、配列は動的に生成されたクラスからインスタンス化されたオブジェクトです。
- 内部的には、Java配列はSerializableおよびCloneableインターフェースを実装しています。
- Java配列には、親クラスとしてオブジェクトクラスもあります。
- 組み込み型と派生型の値をJava配列に格納できます。
- 配列の長さは、C / C ++のようにsizeofではなく、lengthメンバーを使用して取得できます。
- Javaでは、1次元配列と多次元配列の両方が可能です。
このチュートリアルでは、これから行う読者にすべての配列の概念を紹介します。
このシリーズのJava配列について説明します。
はじめましょう!!
Javaアレイ–作成と初期化
プログラムで使用するには、配列を作成する必要があります。配列の作成には、配列が保持する要素のデータ型と、配列に含まれる要素の数を指定することが含まれます。
さまざまな方法で、また配列を初期化できるさまざまな方法で配列を作成する方法について説明します。
アレイの作成と初期化に使用される方法の1つの例を以下に示します。
public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('myArray(0):' + myArray(0)); System.out.println('myArray(1):' + myArray(1)); System.out.println('myArray(2):' + myArray(2)); System.out.println('myArray(3):' + myArray(3)); System.out.println('myArray(4):' + myArray(4)); } }
出力:
このプログラムでは、int配列を宣言し、newを使用してインスタンス化しました。次に、インデックス0と1の要素を、それぞれ値1と3で初期化しました。
最後に、配列のすべての要素を出力します。配列の型がintであるため、初期化していない要素のデフォルト値は0であることに注意してください。
Java配列で要素を出力する
プログラムで配列を使用する場合、配列は必ず表示されます。配列要素を表示するには、forループ、forEachループ、ArraysクラスのtoStringメソッドなどの特別なメソッドを使用します。このトピックには、配列要素の印刷に使用されるさまざまなメソッドがすべて含まれています。
以下に示すのは、「Arrays」クラスのtoStringメソッドを使用して配列要素を出力するプログラムです。
import java.util.*; public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('Array Elements : ' + Arrays.toString(myArray)); } }
出力:
Javaの配列の長さ
配列の長さは、配列に存在する要素の数を示します。 「sizeof」演算子を使用して配列の長さを取得するC / C ++とは異なり、Java配列には「length」プロパティがあります。このプロパティについては、後で詳しく説明します。
以下に示すのは、配列の長さを表示するプログラムです。
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; System.out.println('Size of the given array : ' + myArray.length); } }
出力:
このプログラムでは、配列リテラルを使用して配列を初期化し、次にlengthプロパティを使用して、配列のサイズ/長さを表示します。
Java配列データ型
すべてのデータ型の配列を持つことができます。このトピックでは、さまざまなデータ型とその定義を持つ配列について説明します。
アニメをオンラインで無料で視聴する方法
以下のプログラムでは、int型とstring型の配列を定義し、それぞれの内容を表示しています。 。
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; String() strArray = {'one','two','three','four','five'}; System.out.println('Elements of int array : ' + Arrays.toString(myArray)); System.out.println('Elements of String array : ' + Arrays.toString(strArray)); } }
出力:
配列への要素の追加
配列への要素の追加は重要な操作です。 Javaの配列は静的で、固定長です。したがって、配列に新しい要素を追加するには、特定の一連の操作を提供する必要があります。ここでは、要素を配列に追加するさまざまな方法について説明します。
配列に要素を追加する方法の1つは、中間構造としてArrayListを使用することです。配列をArrayListに変換します。次に、要素をArrayListに追加し、ArrayListをarrayに戻します。
以下のプログラムは、この実装を示しています。
import java.util.*; class Main { public static void main(String() args) { int n = 10; int i; Integer intArray() = { 1, 2, 3, 4, 5 }; System.out.println('Original Array:
' + Arrays.toString(intArray)); int num = 10; Listintlist = new ArrayList(Arrays.asList(intArray)); intlist.add(num); intArray = intlist.toArray(intArray); System.out.println('
Array after adding ' + num + '
' + Arrays.toString(intArray)); } }
出力:
配列からの要素の削除/削除
配列から要素を削除することも、もう1つの主要な操作です。 Javaでは、要素を直接削除することはできません。したがって、これを行うために他のオプションを採用しています。
以下に示すのは、次の方法の1つの実装です。 ArrayListを使用して配列から要素を削除します 。
import java.util.*; importjava.util.stream.*; class Main { public static void main(String() args) { int() tensArray = { 10,20,30,40,50}; System.out.println('Input Array: '+ Arrays.toString(tensArray)); int index = 1; System.out.println('Index to be removed: ' + index); if (tensArray == null || index = tensArray.length) { System.out.println('No element to delete'); } ListtensList = IntStream.of(tensArray).boxed().collect(Collectors.toList()); tensList.remove(index); tensArray = tensList.stream().mapToInt(Integer::intValue).toArray(); System.out.println('Array after deleting element at '+ index + ':
'+ Arrays.toString(tensArray)); } }
出力:
ここでは、最初に配列をArrayListに変換してから、ArrayListメソッドremoveを使用して要素を削除します。その後、ArrayListを配列に変換し直し、変更された配列を出力します。
Javaで配列をコピーする
配列要素をある配列から別の配列にコピーするためのいくつかの操作について説明します。また、配列の浅いコピーと深いコピーについても説明します。
そのようなメソッドの1つは、java.utilパッケージのArraysクラスのcopyOf()メソッドです。 。
import java.util.*; public class Main { public static void main(String() args) { int() intArray = {10,15,20,25,30,35,40}; int array_len = intArray.length; System.out.println('Original Array:' + Arrays.toString(intArray)); int() copy_intArray = Arrays.copyOf(intArray, array_len); System.out.println('Copied Array:' + Arrays.toString(copy_intArray)); } }
出力:
Arraysクラスの「copyOf」メソッドは、引数として指定された配列をその長さとともに別の配列にコピーします。
Javaで配列を複製する
Javaで配列のクローンを作成することもできます。 Javaは、ArrayUtilsパッケージでこのためのメソッドを提供します。ここでは、クローン作成について詳しく説明します。
Javaで配列のクローンを作成する簡単な例を実装しましょう。
import java.util.*; class Main { public static void main(String args()) { int num_Array() = {5,10,15,20,25,30}; int clone_Array() = num_Array.clone(); System.out.println('Original num_Array:' + Arrays.toString(num_Array)); System.out.println('Cloned num_Array:'+ Arrays.toString(clone_Array)); } }
出力:
したがって、クローン作成は、別の方法を使用してコピーするだけです。
Javaでの配列の並べ替え
配列要素を並べ替えたり、昇順または降順で並べ替えたりすることは、重要な操作の1つです。ほとんどのアプリケーションでは、データを並べ替える必要があります。 Javaは、配列のフィルターソートを提供します。これについては、並べ替えで詳しく説明します。
以下はの簡単な例です s Arrays.sort()メソッドを使用してJaveで配列を並べ替える 。
import java.util.Arrays; public class Main { public static void main(String() args) { int() num_Array = {115,32,56,78,94,108,100,63}; System.out.println('Original Array: ' + Arrays.toString(num_Array)); Arrays.sort(num_Array); System.out.println('Sorted Array: ' + Arrays.toString(num_Array)); } }
出力:
上に示したように、Arraysクラスのsortメソッドは、配列要素を昇順でソートします。
Javaで配列を逆にする
要素の順序を逆にすることも、配列によって提供されません。削除と同じように、いくつかのターンアラウンドを実行して結果を達成する必要があります。このトピックでは、配列を逆にする方法を説明します。
次のプログラムは、 配列の反転の実装 。
import java.util.*; public class Main { public static void main(String() args) { Integer () even_Arrayr = {2,4,6,8,10}; System.out.println('Original Array:' + Arrays.asList(even_Arrayr)); Collections.reverse(Arrays.asList(even_Arrayr)); System.out.println('Reversed Array:' + Arrays.asList(even_Arrayr)); } }
出力:
ArrayIndexOutOfBounds例外
指定された長さまたは負のインデックスを超えて配列要素にアクセスしようとすると、コンパイラは「ArrayIndexOutOfBounds」例外をスローします。この例外については、関連トピックで詳しく説明します。
import java.util.ArrayList; public class Main { public static void main(String() args) { ArrayListmyList = new ArrayList(); myList.add('one'); myList.add('two'); System.out.println(myList.get(2)); } }
出力 :
上記のプログラムでは、2つのエントリを持つArrayListがあり、存在しないインデックス2のエントリを取得しようとしています。したがって、プログラムはIndexOutofBounds例外を出します。
Java文字列配列とさまざまなメソッド
Javaでサポートされているすべてのデータ型の中で、文字列が最も重要です。したがって、文字列型配列も特別な議論に値します。文字列配列に含まれるデータはほとんどがテキストであるため、テキストを操作するためにさまざまなメソッドが提供されています。
import java.util.ArrayList; public class Main { public static void main(String() args) { String() rgb = {'Red', 'Green', 'Blue'}; System.out.println('The string array elements:'); for (String item: rgb) { System.out.print(item + ' '); } } }
出力:
これは文字列配列の基本的なプログラムです。文字列配列を宣言し、forEachループを使用してその内容を表示しました。
Javaの多次元配列
これまで、1次元配列のみを見てきました。 Javaは、要素が主に行と列に配置されている多次元配列もサポートしています。 Javaの配列は、配列の各要素に別の配列を含めることができるため、より複雑になります。
ここでは、Javaの多次元配列とその特定の操作について説明します。
2次元配列の例を実装しましょう。
class Main { public static void main(String args()) { // declaring and initializing 2D array int array_2d()() = { {1,2,3},{4,5,6},{7,8,9} }; System.out.println('The two-dimensional array is as follows:'); for (int i=0; i<3 ; i++) { for (int j=0; j < 3 ; j++) System.out.print(array_2d(i)(j) + ' '); System.out.println(); } }
出力:
オブジェクトのJava配列
プリミティブ型の格納とは別に、Java配列はオブジェクトも格納できます。このトピックでは、オブジェクトの配列のいくつかの例を検討します。
一例を以下に示します。
class Main{ public static void main(String args()){ Test testobj() = new Test(2) ; testobj(0) = new Test(); testobj(1) = new Test(); testobj(0).setData(1,3); testobj(1).setData(2,4); System.out.println('For Array Element 0 (testobj(0)):'); testobj(0).displayData(); System.out.println('For Array Element 1 (testobj(1)):'); testobj(1).displayData(); } } class Test{ int val1; int val2; public void setData(int c,int d){ val1=c; val2=d; } public void displayData(){ System.out.print('val1 ='+val1 + '; val2 ='+val2 + '
'); } }
出力:
要素をオブジェクトとして含む配列を持つことができます。上記のプログラムには、Testクラスのオブジェクトの配列があります。オブジェクトごとに個別にメンバー関数を呼び出して、値を設定および表示します。
Javaで配列を返す
同様に、任意のメソッドから変数を返す場合は、配列も返すことができます。同様に、配列をメソッドに渡すことができます。これらの可能性の両方について、ここで例を挙げて説明します。
通常、配列への参照はメソッドとの間で受け渡されます。
次のプログラムは、Javaでの配列の戻りを示しています 。
class Main { static int() add_sub(int val1, int val2) { int() result = new int(2); result(0) = val1 + val2; result(1) = val1 - val2; return result; } public static void main(String() args) { int() result = add_sub(10, 5); System.out.println('val1 + val2 = ' + result(0)); System.out.println('val1 - val2 = ' + result(1)); } }
出力:
上記のプログラムでは、2つの演算、つまり2つの数値の加算と減算を実行します。各操作の結果は、要素として配列に格納されます。次に、配列参照全体が呼び出し元の関数に返されます。
Java配列クラス
Java配列クラスは、配列を操作する機能を提供するjava.utilパッケージのクラスです。配列のコピー、並べ替え、配列の文字列への変換など、多くの機能を提供します。
Javaジェネリック配列
タイプに依存しないエンティティであるJavaのジェネリックスはすでに見てきました。 Java配列は、型に依存しないものとして定義できる汎用的なものにすることができます。ただし、バイトコードの生成時にはジェネリックコードを使用できないため、要素のタイプを推測することは困難です。配列は実行時に保持されます。
したがって、ジェネリックが必要な場合は常に、配列の代わりに、Javaコレクションフレームワークからリストに切り替えます。
ただし、1つ以上のメソッドを使用することで、ジェネリックのような配列構造にすることもできます。ここでは、これらの方法について説明します。
オブジェクト配列を使用するメソッドの1つの例を以下に示します。
import java.util.Arrays; class Main { public static void main(String() args) { final int length = 5; //integer array object from Generic_Array class Generic_ArrayintArray = new Generic_Array(length); for (int i = 0; i 出力:

したがって、上記のプログラムでは、オブジェクト配列を要素として持つ汎用配列クラスと、配列オブジェクトを取得/設定するためのget / setメソッドを記述しました。 ArraysクラスのtoStringメソッドもオーバーライドしました。 Mainクラスでは、Integer型とString型のジェネリック配列クラスの2つのオブジェクトを作成し、それらに適切な値を割り当てます。
Javaのギザギザの配列
ギザギザの配列は、各メンバー配列が異なるサイズの多次元配列です。ギザギザの配列は、配列の配列の例でもあります。
次のプログラムは、ギザギザの配列の例を示しています。
class Main { public static void main(String() args) { int jagged_array()() = new int(2)(); jagged_array(0) = new int(4); jagged_array(1) = new int(2); for (int i=0; i 出力:

上記のプログラムには2D配列があります。最初の配列の次元は4で、2番目の配列の次元は2です。出力には、ギザギザの配列の両方の次元の内容が表示されます。
Java8の配列
Java 8はJavaのメジャーリリースであったため、アレイにもたらされた変更について説明します。 例えば、 配列上のストリームはJava8で導入されました。
Javaで配列をインポートする
無料でアニメを見るのに良いウェブサイト
「java.util」パッケージの「Arrays」クラスをインポートすることで、Javaに配列の追加機能を含めることができます。
より多くの機能のためにarrayutilsパッケージをインポートすることもできます。前の例から、インポート機能についてより多くの知識を習得している必要があります。
JavaアレイAPIとドキュメント
Java配列APIは、Java配列に作用するすべての関数のコレクションです。ここでは、このアプリケーションプログラミングインターフェイス(API)について説明します。
最後に、Java配列の説明とともに、すべてのプロパティとメソッドをリストしました。これは、読者がクイックリファレンスを作成するのに役立ちます。
よくある質問
Q#1)配列はJavaのプリミティブデータ型ですか?
回答: いいえ。配列はプリミティブデータ型ではありませんが、配列は同じデータ型の要素を連続した場所に保持するコンテナオブジェクトです。
Q#2)配列はJavaの型を参照していますか?
回答: はい。配列はオブジェクトのコンテナであり、参照として扱われます。
Q#3)Javaで配列のサイズを増やすことはできますか?
回答: いいえ。配列を宣言し、サイズでインスタンス化します。指定すると、配列のサイズを変更することはできません。
結論
このチュートリアルでは、Javaの配列の概念を紹介しました。 Java配列に関連する主なトピックについて説明しました。
以降のチュートリアルでは、Javaでこれらの配列関連のトピックを詳しく調べます。
ハッピーラーニング!!
推奨読書