Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java】ArrayListを関数の引数として渡す方法をサンプルコード付きで解説

この記事では、JavaにおいてArrayListを関数の引数として渡す方法をわかりやすく解説します。

ArrayListクラスは、java.utilパッケージに含まれる「サイズ変更可能な配列(可変長リスト)」です。Javaの組み込み配列とArrayListの大きな違いは、組み込み配列は一度生成するとサイズを変更できないのに対し、ArrayListは要素の追加・削除に応じて動的にサイズが変化するという点にあります。

入出力のイメージ

入力:プログラムを実行します。

期待される出力:

リストは以下のように定義されています:
Java Python Scala Mysql Redshift

アルゴリズム

ステップ1 − 処理を開始する
ステップ2 − 必要な変数・リストの宣言を行う
ステップ3 − 要素となる値を定義する
ステップ4 − ArrayListを作成し、要素を反復処理して表示できるようにする
ステップ5 − mainメソッド内でArrayListを生成し、「add」メソッドで要素を追加する
ステップ6 − メソッドにリストを渡して呼び出し、コンソールに結果を表示する
ステップ7 − 処理を終了する

例1:文字列型(String)のArrayListを渡す場合

ここでは、プログラミング言語名を格納した文字列型のArrayListをprintメソッドに渡し、拡張for文(for-each)を使って各要素を順番に出力しています。

import java.util.ArrayList;
public class Demo {
    public static void print(ArrayList<String> input_list) {
        System.out.print("\nリストは以下のように定義されています:\n ");
        for (String language : input_list) {
            System.out.print(language + " ");
        }
    }
    public static void main(String[] args) {
        System.out.println("必要なパッケージがインポートされました");
        ArrayList<String> input_list = new ArrayList<>();
        input_list.add("Java");
        input_list.add("Python");
        input_list.add("Scala");
        input_list.add("Mysql");
        input_list.add("Redshift");
        print(input_list);
    }
}

出力

必要なパッケージがインポートされました

リストは以下のように定義されています:
Java Python Scala Mysql Redshift

コードのポイント

  • メソッドの仮引数をArrayList<String>型として宣言すれば、文字列リストをそのまま引数として受け渡せます。
  • 拡張for文を利用することで、インデックス管理をすることなく全要素へ簡潔にアクセスできます。
  • ArrayListは参照型のため、関数に渡されるのは「参照のコピー」です。受け取った側での操作は元のリストにも反映されます。

例2:整数型(Integer)のArrayListを渡す場合

次に、数値を格納したArrayListを同じ仕組みで関数へ渡す例を紹介します。ジェネリクスの型引数をIntegerに変更するだけで、文字列の場合とまったく同じ流れで処理できます。

import java.util.ArrayList;
public class Demo {
    public static void print(ArrayList<Integer> input_list) {
        System.out.print("\nリストは以下のように定義されています:\n ");
        for (Integer element : input_list) {
            System.out.print(element + " ");
        }
    }
    public static void main(String[] args) {
        System.out.println("必要なパッケージがインポートされました");
        ArrayList<Integer> input_list = new ArrayList<>();
        input_list.add(10);
        input_list.add(20);
        input_list.add(30);
        input_list.add(40);
        input_list.add(50);
        print(input_list);
    }
}

出力

必要なパッケージがインポートされました

リストは以下のように定義されています:
10 20 30 40 50

まとめ

ArrayListを関数の引数として渡すのは非常にシンプルで、通常の変数と同様にメソッド呼び出しの括弧内に指定するだけで実現できます。ただし、ArrayListは参照型であるため、受け取り側のメソッド内でadd()remove()などを呼び出すと、呼び出し元のリストにもその変更が反映される点には注意が必要です。意図しない改変を防ぎたい場合は、Collections.unmodifiableList()で読み取り専用のビューを作成するのも有効な対策となります。


  1. Javaで台形の面積を求めるプログラムの作成方法を解説

    この記事では、Javaを使って台形(トラペジウム)の面積を求める方法について詳しく解説します。台形とは、少なくとも1組の対辺が互いに平行になっている四角形のことです。平行な2つの辺は「底辺」と呼ばれ、平行でない残りの2つの辺は「脚」と呼ばれます。英語圏では trapezoid(トラペゾイド)と呼ばれることもあります。 台形の面積は、次の公式を使って計算できます。 面積 = (高さ ÷ 2) × (上底 + 下底) すなわち、 面積 = ½ × (平行な2辺の長さの合計) × (平行な2辺間の垂直距離) 以下に具体的なイメージを示します。平行な2辺の長さを a、b、台形の高さを h としたとき

  2. 【Java入門】長方形の周囲(外周)を求めるプログラムの作り方

    長方形の周囲とは? この記事では、Javaを使って長方形の周囲(外周)を求める方法を解説します。長方形の周囲とは、長方形の4つの辺すべての長さを足し合わせた合計のことで、次の図のように「縦の辺2本」と「横の辺2本」の長さを合計したものに相当します。 長方形は向かい合う辺の長さが等しいという性質を持つため、周囲は次の式で計算できます。 周囲 = 2 ×(縦の長さ + 横の長さ) 入力と出力の例 たとえば、入力が次の値であるとします。 長方形の各辺の長さ:5, 8, 5, 8 このとき、期待される出力は次のとおりです。 Perimeter : 26 アルゴリズム 処理の流れは以下のようになりま