Java のメソッドに配列を渡す

Mohammad Irfan 2023年1月30日 2021年10月16日
  1. Java の配列
  2. Java のメソッド
  3. Java のメソッドに配列を渡す
  4. Java のメソッドに配列を渡す
  5. Java で多次元配列をメソッドに渡す
  6. Java で配列がメソッドに渡される方法を理解する
  7. Java で配列をメソッドに渡す
Java のメソッドに配列を渡す

このチュートリアルでは、Java のメソッドに配列を渡す方法を紹介します。また、トピックを理解するのに役立つサンプルコードをいくつかリストしました。

Java は強力なオブジェクト指向プログラミング言語です。さまざまな目的に使用できる汎用プログラミング言語です。Java の配列とメソッドについて学び、配列をメソッドに渡す方法を理解しましょう。

Java の配列

配列は、同じデータ型の固定サイズのコレクションです。それらは連続したブロックとしてメモリに保存され、一定の時間に配列の任意の要素にランダムにアクセスできるようにします。

配列内の各要素には専用のインデックスが関連付けられているため、このランダムアクセスが可能です。特定の要素に到達するために配列全体をトラバースする必要はありません。配列インデックスは 0 から始まり、n-1 に進みます。ここで、n は配列の長さです。

次のコード行は、配列を作成してその要素にアクセスする方法を説明しています。

public class Main{
    public static void main(String[] args)
    {
      int[] arr; //Declaration
arr = new int[5]; //Creation
//Initialization
arr[0] = 1;
arr[1] = 3;
arr[2] = 5;
arr[3] = 7;
arr[4] = 9;
//Accessing Array Elements
System.out.println("Second Element: " + arr[1]);
System.out.println("Fourth Element: " + arr[3]);
}
}

出力:

Second Element: 3
Fourth Element: 7

Java のメソッド

メソッドは、特定のタスクを実行するために使用できる一連の命令として定義されます。これらは、コードの再利用性を高めるために使用されます。

たとえば、110 の間のすべての数値の階乗を見つけたい場合は、階乗 10 のロジック全体を書き直すのではなく、階乗のメソッドを定義し、そのメソッドを最初に 10 回呼び出す方がはるかに優れています。異なる時間。

Java のメソッドは、他のプログラミング言語の関数と非常によく似ています。唯一の違いは、メソッドはオブジェクトに関連付けられているのに対し、関数は関連付けられていないことです。Java は完全にオブジェクト指向言語であるため、Java のメソッドしかありません。

Java のメソッドに配列を渡す

メソッドは、固定されたパラメーターのセットを使用する場合と使用しない場合があります。パラメータは、メソッドの本体を定義するために使用する必要のある任意の変数にすることができます。

階乗法の例では、パラメーターは、階乗を見つける必要がある数にすることができます。しかし、配列全体をメソッドに渡す必要がある場合はどうなるでしょうか。

メソッド宣言では、配列をメソッドに渡すために、メソッドが特定のデータ型の配列を受け入れる必要があることを Java に通知する必要があります。配列のデータ型と角括弧を使用して、パラメーターが配列であることを示します。

//Method Declaration
public static void addTen(int[] arr)
{
    //Method Body
}

メソッドが呼び出されるたびに、配列の名前をメソッドに渡す必要があります。次の例は、配列を受け入れてそのメソッドを呼び出すメソッドを含む完全なコードを示しています。

public class Main
{
    public static void addTen(int[] arr)// int[] denotes that the parameter is an array
    {
        for(int i = 0; i < arr.length; i++)
        {
            arr[i] += 10;
        }
    }
    public static void main(String[] args)
    {
        int[] arr = {1, 3, 5, 7, 9};
        addTen(arr);//Simply pass the name of the array to the method
        for(int i = 0; i < arr.length; i++)
        {
            System.out.print(arr[i] + " ");
        }
    }
}

出力:

11 13 15 17 19 

Java のメソッドに配列を渡す

同じ長さの 2つの配列をメソッドに渡す別の例を考えてみましょう。このメソッドは、2つの配列の合計を出力する必要があります。

public class Main{
    public static void addArrays(int[] arr1, int[] arr2)//Two arrays are mentioned in the method declaration
    {
        for(int i = 0; i < arr1.length; i++)
        {
            int sum = arr1[i] + arr2[i];
            System.out.print(sum + " ");
        }
    }
    public static void main(String[] args)
    {
        int[] arr1 = {1, 2, 3, 4, 5};
        int[] arr2 = {2, 4, 6, 8, 10};
        addArrays(arr1, arr2);//Passing two arrays and calling the method
    }
}

出力:

3 6 9 12 15

Java で多次元配列をメソッドに渡す

多次元配列を Java のメソッドに渡すこともできます。配列の次元に応じて、配列要素と角括弧のデータ型を指定する必要があります。

次の例を考えてみましょう。ここでは、2 次元配列に存在するすべての要素の合計が見つかります。

public class Main
{
    public static void sum(int[][] arr)
    {
        int sum = 0;
        for(int i = 0; i < arr.length; i++)
        {
            for(int j = 0; j < arr[0].length; j++)
            {
                sum = sum + arr[i][j];
            }
        }
        System.out.print("Sum of all elements is: " + sum);
    }
    public static void main(String[] args)
    {
        int[][] arr = {
                {1, 2, 3, 4, 5},
                {2, 4, 6, 8, 10},
                {1, 3, 5, 7, 9}
        };
        sum(arr);
    }
}

出力:

Sum of all elements is: 70

Java で配列がメソッドに渡される方法を理解する

パラメータをメソッドに渡すと、舞台裏で何が起こるかを見て理解してみましょう。

Java では、パラメーターは値型による受け渡しです。これは、変数をメソッドに渡すときはいつでも、その変数の値のコピーが、元の変数自体ではなく、メソッドが使用するものによって渡されることを意味します。

たとえば、メソッドが整数を受け入れ、その整数に 10 を追加する次の場合を考えてみましょう。

public class Main
{
    public static void addTen(int num)
    {
        num = num + 10;
    }
    public static void main(String[] args)
    {
        int a = 12;
        addTen(a);
        System.out.print(a);
    }
}

出力:

12

上記のコードの出力はどうなると思いますか?数値は 10 ずつ増やす必要がありますよね?

整数がメソッドに渡されても、整数値のコピーがメソッドが実際に受け取るものになります。したがって、すべての変更はそのコピーに対して行われ、元の整数には変更が加えられません。ただし、これは int のようなプリミティブデータ型でのみ発生します。

配列はプリミティブデータ型ではなく、ヒープメモリ内のメモリ位置を参照するコンテナオブジェクトと見なされるため、これは配列には当てはまりません。その結果、実際のデータではなく、メモリ位置の値が格納されます。

そのメモリ位置で何かを変更すると、その変更は、そのメモリ位置を指すすべてのポインタ(または参照)に表示されます。Java では配列も値によって渡されますが、その値は実際にはメモリの場所であることに注意してください。

配列の各要素に 10 を追加するメソッドを作成した上記のコードについて考えてみます。

Java で配列をメソッドに渡す

同じタイプのデータのコレクションをメソッドに渡す必要があることがよくあります。配列はこれらのタスクに最適であり、配列をメソッドに渡すことができます。

メソッド宣言では、メソッドが前述のデータ型の配列を受け入れる必要があることを明確に指定する必要があります。これは、データ型と角かっこ(たとえば、int [] arrayName)を使用して行われます。

メソッドの呼び出し中に、配列の名前を入力できます。このチュートリアルでは、メソッドが配列を処理する方法と、配列の要素を格納するメモリ位置が更新される方法についても学習しました。

関連記事 - Java Array

関連記事 - Java Method