how pass return an array java
このチュートリアルでは、配列をメソッドへの引数として、およびJavaのメソッドの戻り値として渡す方法を例を挙げて説明します。
メソッドまたは関数は、プログラムをより小さなモジュールに分割するためにJavaで使用されます。これらのメソッドは他の関数から呼び出され、その間、データはこれらのメソッドとの間で呼び出し元の関数との間で受け渡されます。
呼び出し元の関数から呼び出された関数に渡されるデータは、関数への引数またはパラメーターの形式です。関数から返されるデータが戻り値です。
セレンWebドライバーの例のデータ駆動型フレームワーク
=> ここでJavaトレーニングチュートリアルのA〜Zを確認するには、ここをクリックしてください。
通常、すべてのプリミティブ型と派生型は、関数との間で受け渡しできます。同様に、配列をメソッドに渡して、メソッドから返すこともできます。
このチュートリアルでは、配列を引数としてメソッドに渡し、メソッドから配列を返す方法について説明します。
学習内容:
Javaのメソッドに配列を渡す
プリミティブデータ型の引数を渡すのと同じように、配列を他のメソッドに渡すことができます。配列を引数としてメソッドに渡すには、角かっこなしで配列の名前を渡す必要があります。メソッドのプロトタイプは、配列型の引数を受け入れるために一致する必要があります。
以下にメソッドのプロトタイプを示します。
void method_name (int () array);
これは、method_nameがint型の配列パラメーターを受け入れることを意味します。したがって、myarrayという名前のint配列がある場合は、 上記のメソッドは次のように呼び出すことができます。
method_name (myarray);
上記の呼び出しは、配列myarrayへの参照をメソッド「method_name」に渡します。したがって、メソッド内でmyarrayに加えられた変更は、呼び出し元のメソッドにも反映されます。
C / C ++とは異なり、すべてのJava配列にはプロパティ「length」があるため、配列とともにlengthパラメータをメソッドに渡す必要はありません。ただし、配列内のいくつかの位置のみが埋められる場合は、いくつかの要素を渡すことをお勧めします。
次のJavaプログラムは、配列をパラメーターとして関数に渡す方法を示しています。
public class Main { //method to print an array, taking array as an argument private static void printArray(Integer() intArray){ System.out.println('Array contents printed through method:'); //print individual elements of array using enhanced for loop for(Integer val: intArray) System.out.print(val + ' '); } public static void main(String() args) { //integer array Integer() intArray = {10,20,30,40,50,60,70,80}; //call printArray method by passing intArray as an argument printArray(intArray); } }
出力:
上記のプログラムでは、配列はmain関数で初期化されます。次に、メソッドprintArrayが呼び出され、この配列が引数として渡されます。 printArrayメソッドでは、配列がトラバースされ、各要素が拡張forループを使用して出力されます。
配列をメソッドに渡す別の例を見てみましょう。この例では、2つのクラスを実装しました。 1つのクラスには呼び出しメソッドmainが含まれ、もう1つのクラスには配列内の最大要素を見つけるメソッドが含まれます。
したがって、mainメソッドは、配列をこのメソッドfind_maxに渡すことにより、別のクラスのメソッドを呼び出します。 find_maxメソッドは、入力配列の最大要素を計算し、それを呼び出し元の関数に返します。
class maxClass{ public int find_max(int () myarray) { int max_val = 0; //traverse the array to compare each element with max_val for(int i=0; imax_val) { max_val = myarray(i); } } //return max_val return max_val; } } public class Main { public static void main(String args()) { //input array int() myArray = {43,54,23,65,78,85,88,92,10}; System.out.println('Input Array:' + Arrays.toString(myArray)); //create object of class which has method to find maximum maxClassobj = new maxClass(); //pass input array to find_max method that returns maximum element System.out.println('Maximum value in the given array is::'+obj.find_max(myArray)); } }
出力:
上記のプログラムでは、あるクラスの1つのメソッドから、別のクラスに存在する別のメソッドに配列を渡しました。メソッドが同じクラスにあるか異なるクラスにあるかにかかわらず、配列を渡すアプローチは同じであることに注意してください。
Javaで配列を返す方法
Javaプログラムから返すことができるすべてのプリミティブ型とは別に、配列への参照を返すこともできます。
メソッドから配列への参照を返すときは、次の点に注意する必要があります。
- 値を返すデータ型は、適切なデータ型の配列として指定する必要があります。
- メソッドからの戻り値は、配列への参照です。
メソッドから同じタイプの複数の値を返す必要がある場合、配列はメソッドから返されます。 Javaでは複数の値を返すことができないため、このアプローチが役立ちます。
次のプログラムは、メソッドから文字列配列を返します。
import java.util.*; public class Main { public static String() return_Array() { //define string array String() ret_Array = {'Java', 'C++', 'Python', 'Ruby', 'C'}; //return string array return ret_Array; } public static void main(String args()) { //call method return_array that returns array String() str_Array = return_Array(); System.out.println('Array returned from method:' + Arrays.toString(str_Array)); } }
出力:
上記のプログラムは、メソッドから配列参照を返す例です。 「return_array」メソッドは、文字列「ret_Array」の配列として宣言され、単純にそれを返します。 mainメソッドでは、return_arrayメソッドからの戻り値が文字列配列に割り当てられてから表示されます。
次のプログラムは、メソッドから配列を返す別の例を示しています。ここでは、計算された乱数を格納するために使用される整数配列を使用し、この配列が呼び出し元に返されます。
public class Main { public static void main(String() args) { final int N = 10; // number of random elements // Create an array int() random_numbers; // call create_random method that returns an array of random numbers random_numbers = create_random(N); System.out.println('The array of random numbers:'); // display array of random numbers for (int i = 0; i number of random numbers to be generated int() random_array = new int(N); //generate random numbers and assign to array for (int i = 0; i 出力:

計算結果がnullまたは空になる場合があります。この場合、ほとんどの場合、関数はnullを返します。配列が含まれる場合は、nullではなく空の配列を返すことをお勧めします。これは、配列を返すメソッドに一貫性があるためです。また、呼び出し元はnull値を処理するための特別なコードを持っている必要はありません。
よくある質問
Q#1)Javaは参照によって配列を渡しますか?
回答: はい。配列はデフォルトで参照によって渡されます。配列を関数に渡すときに、配列の開始アドレスに評価される配列の名前を指定するだけです。
Q#2)配列が値で渡されないのはなぜですか?
回答: メソッドに渡される配列名は参照に評価されるため、配列を値で渡すことはできません。
Q#3)Javaで配列を返すことはできますか?
回答: はい、Javaで配列を返すことができます。このチュートリアルでは、配列を返す例をすでに示しました。
Q#4)メソッドは複数の値を返すことができますか?
回答: 仕様によると、Javaメソッドは複数の値を返すことはできません。しかし、複数の値を返すことをシミュレートするための回り道があります。 例えば、 そのことについては、複数の値またはコレクションを持つ配列を返すことができます。
Q#5)メソッドにJavaで2つのReturnステートメントを含めることはできますか?
回答: いいえ。Javaでは、メソッドに複数の戻り値を含めることはできません。
結論
Javaでは、配列を引数としてメソッドに渡すことも、メソッドから返すこともできます。配列は参照としてメソッドに渡されます。
特定のメソッドを呼び出すときに、配列の開始アドレスを指す配列名が渡されます。同様に、配列がメソッドから返される場合、返されるのは参照です。
Windows用の無料DVDリッピングソフトウェア
このチュートリアルでは、上記のトピックについて例を挙げて詳しく説明しました。 以降のチュートリアルでは、Javaの配列に関するその他のトピックについて説明します。
=> 独占的なJavaトレーニングチュートリアルシリーズについては、こちらをご覧ください。
推奨読書