Javaの配列(array)を極める!宣言・検索・結合などの使い方を確認。

Javaの配列(array)を極める!宣言・検索・結合などの使い方を確認。

この記事では、Javaの配列について基礎から応用的な使い方まで説明する。

配列はプログラミングにおける基礎であるものの、Javaには配列の代用となるオブジェクトが多く準備されていることから一般的な配列(array)はあまり使用しないという人も少なく無いはずだ。

この記事は以下のような人たちを対象にして書いている。

  • プログラミングの初心者で配列について1から勉強したい人。
  • 他のプログラミング言語の知識を持っており、Javaの配列について知りたい人。
  • 実務に役立つ配列の応用的な使い方を学びたい人。

なお、ArrayList・LinkedList・mapなどは別の記事で解説するので、そちらを参考にしてほしい。

Javaの配列とは

配列とは複数の並列する要素を格納できる変数。

配列は常にひとつのデータ型を持ち、通常、異なるデータ型を格納することは出来ない。

配列の使い方

では、以下のサンプルコードを例にJavaにおける配列の使い方を見ていこう。

class ArrayExample {

    private static Article[] articleList = {
            new Article(1578, "PCモニター", 12000),
            new Article(241, "日本語キーボード", 3200),
            new Article(1745, "光学式マウス", 980),
    };

    public static void main(String[] args) {

        // integerを使った配列の例
        int[] numbers = {5, 4, 12, 5, 3};

        // Stringを使った配列の例
        String[] names = {"Thomas", "Michael", "John"};
        
        // すべての値を書き出す
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(i + ":" + numbers[i]);
        }

        // 3番目の値のみ書き出す
        System.out.println(numbers[2]);

        // 4つ目の値を上書きする
        numbers[3] = 5;
        System.out.println(numbers[3]);

        // arrayに値を追加したい場合は、Arrays.copyOfメソッドを利用するのをオススメする
        numbers = Arrays.copyOf(numbers, numbers.length + 1);
        numbers[5] = 13;

        // オブジェクトを使用した配列の例
        for (int i = 0; i < articleList.length; i++) {
            System.out.println(articleList[i].toString());
        }
    }
}

class Article {

    private int articleNr;
    private String name;
    private int price;

    public Article(int articleNr, String name, int price) {
        this.articleNr = articleNr;
        this.name = name;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Article{" +
                "articleNr=" + articleNr +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

配列の宣言

配列の宣言は以下のようにおこなう。

int[] number = {5, 4, 12, 5, 3};

値がStringである場合は以下のようになる。

String[] names = {"Thomas", "Michael", "John"};

配列の値をすべて呼び出す

配列の値をすべて呼び出す場合は、forまたはforeach構文を使用する。

for (int i = 0; i < number.length; i++) {
    System.out.println(i + ":" + number[i]);
}

インデックスを元に呼び出す

特定のインデックスん値を呼び出したい場合は以下のような構文を使用する。

System.out.println(number[2]);

配列に値を代入する

配列に値を代入する場合はインデックスを指定しておこなう。

number[3] = 5;
System.out.println(number[3]);

配列の応用的な使い方

ここまで、基礎的な配列の使い方を説明してきたが、説明してきた以外の操作を求められることもあるだろう。

次に配列のより高度な使い方を紹介していく。

配列の長さを得る(length)

配列の長さ(いくつの値を格納しているか)を確認したいときは、lengthメソッドを使用する。

String[] names = {"Thomas", "Michael", "John"};
System.out.println(names.length);

配列が値を含んでいるかチェックする(contains)

配列の中に特定の要素が含まれているか確認したいときは以下のようにする。

String[] names = {"Thomas", "Michael", "John"};
System.out.println(Arrays.asList(names).contains("John"));

ArrayListなどとは違い、配列からダイレクトにcontainsメソッドを使用することはできないため、Arraysクラスの「asList」メソッドを使用し配列をリストに変換してからcontainsメソッドを使用する。