English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java プロセス制御

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 異常処理

Java リスト(リスト)

Java キュー(キュー)

Java Mapコレクション

Java Setコレクション

Java 入出力(I/O)

Java Reader/Writer

Java その他のトピック

Java 配列(Arrays)

このチュートリアルでは、Javaで配列を使用する方法を学びます。宣言、初期化、配列要素のアクセスについての例を通じて学びます。

 配列は似たタイプのデータの集合です。これは、単一のタイプのデータ(値)を保存するためのコンテナです。例えば、以下のように配列を作成できます10int型の値0個。

Javaでは、配列は基本的な構造体であり、多くの通常の値を保存しアクセスすることができます。

配列はどう宣言しますか?

Javaでは、これが配列を宣言する方法です。

dataType[] arrayName;

例を挙げてみましょう

double[] data;

 ここでは、dataという配列はdouble型の値を保存できます。

どれくらいの要素を収容できますか?

 素晴らしい質問です!配列にメモリを割り当てる必要があります。メモリは配列が収容できる要素数を定義します。

data = new Double[10];

 ここでは、配列のサイズは10これは、それが収容できるということを意味します10個の要素(10個のdouble型の値)。配列のサイズも配列の長さと呼ばれます。

注意:配列の長さが定義された後は、プログラム中で変更することはできません。

もう一つの例を挙げましょう:

int[] age;
age = new int[5];

これはageという配列です。それは以下の値を収容できます5個のint型の値。

 Javaでは、配列のメモリを一条の文で宣言および割り当てできます。例えば、

int[] age = new int[5];

Javaの配列インデックス

 Javaでは、配列の各要素は数字と関連付けられています。この数字は配列インデックスと呼ばれます。これらのインデックスを使って配列の要素にアクセスできます。例えば、

int[] age = new int[5];
Javaの配列インデックス

ここでは、長さが5の配列。図では、各要素が数字(配列インデックス)で示されています。配列インデックスは常に0から始まります。

今や、インデックス番号を使って配列の要素にアクセスできます。例えば、配列の最初の要素にアクセスするにはage[0]を使用し、2番目の要素にはage[1]にアクセスします、などと続きます。

注意:配列の長さがnの場合、配列の最初の要素はarrayName[0]、最後の要素はarrayName[n-1]。

配列に値を保存していない場合、配列にはデフォルトの値がそれぞれ保存されます(int型の場合は0、ボルン型の場合はfalse)。例えば、

class ArrayExample {
    public static void main(String[] args) {
    
        //長さが5の配列 
        int[] age = new int[5];
     
        //インデックス番号を使って配列の各要素にアクセスする
        System.out.println(age[0]);
        System.out.println(age[1]);
        System.out.println(age[2]);
        System.out.println(age[3]);
        System.out.println(age[4]);
    };
};

出力

0
0
0
0
0

 上記の例では、ageという名前の配列を作成しました。しかし、配列に値を割り当てていません。そのため、配列の各要素にアクセスしたときに、デフォルトの値がスクリーンに表示されます。

ここでは、配列の要素をそれぞれアクセスします。ループを使用するより良い方法があります(通常forループに)配列の要素にアクセスする例えば、

class ArrayExample {
    public static void main(String[] args) {
        //長さが5の配列
        int[] age = new int[5];
        //forループを使って要素にアクセスする
        for (int i = 0; i < 5; ++i) {
            System.out.println(age[i]);
        };
    };
};

出力

0
0
0
0
0

Javaでは配列をどうして初期化するのでしょうか?

 Javaでは、宣言中に配列を初期化することもできますし、必要に応じて後でプログラム内で初期化することもできます。

宣言中に配列を初期化

 宣言中に配列を初期化する方法

int[] age = {12, 4, 5, 2, 5};

この文は、ageという名前の配列を作成し、大括号内で提供された値で初期化します。

 配列の長さは、大括号内でカンマで区切られた値の数で決定されます。この例では、ageの長さは5。

Javaの配列の初期化

この配列の要素を印刷するための簡単なプログラムを書いてみましょう。

class ArrayExample {
    public static void main(String[] args) {
        //配列を作成します
        int[] age = {12, 4, 5, 2, 5};
        // 配列のインデックス値を使用して配列の要素にアクセス
        for (int i = 0; i < 5; ++i) {
            System.out.println("要素のインデックス " + i +": " + age[i]);
        };
    };
};

出力

要素のインデックス  0: 12
要素のインデックス  1: 4
要素のインデックス  2: 5
要素のインデックス  3: 2
要素のインデックス  4: 5

配列の要素にどのようにアクセスしますか?

前述の通り、数字のインデックスを使用して配列の要素に簡単にアクセスおよび変更できます。例えば、

class ArrayExample {
    public static void main(String[] args) {
        int[] age = new int[5];
        //第3つの要素に挿入します14
        age[2] = 14;
        //を34最初の要素を挿入します
        age[0] = 34;
        for (int i = 0; i < 5; ++i) {
            System.out.println("要素のインデックス " + i +": " + age[i]);
        };
    };
};

出力

要素のインデックス 0: 34
要素のインデックス 1: 0
要素のインデックス 2: 14
要素のインデックス 3: 0
要素のインデックス  4: 0

例:Javaの配列

 以下のプログラムは、int型の配列に格納された値の合計と平均を計算します。

class SumAverage {
    public static void main(String[] args) {
        int[] numbers = {2, -9, 0, 5, 12, -25, 22, 9, 8, 12};
        int sum = 0;
        Double average;
     
        //各ループで要素にアクセスするために使用されます
        for (int number: numbers) {
            sum += number;
        };
     
        int arrayLength = numbers.length;
        //sumと配列の長さをdoubleに変更します。なぜなら、平均値averageはdoubleであるからです
        average =  ((double)sum / (double)arrayLength);
        System.out.println("合計 = " + 合計);
        System.out.println("平均値 = " + average);
    };
};

出力

合計 = 36
平均値 = 3.6

上記の例では、名前付き数値配列を作成しました。for...eachループを使用して配列の各要素にアクセスします。for...eachループの詳細については、アクセスしてくださいJava for ... each ループ

ループ内で各要素の和を計算しています。この行に注意してください

int arrayLength = number.length;

ここでは、数组的 length 属性を使用して配列のサイズを計算しています。次に、以下の公式を使用して平均を計算しています:

average = ((double)sum / (double)arrayLength);

ご覧の通り、int値をdoubleに変換しています。Javaではこれを型変換と呼びます。型変換についてもっと詳しく知りたい場合は、以下のサイトを訪れてくださいJava タイプ変換

多次元配列

 今、話している配列は一つの次元を持つ配列と呼ばれますが、Javaでは多次元配列を宣言することができます。
多次元配列は配列の配列です。つまり、多次元配列の各要素は配列自身です。例えば、

double[][] matrix = {{1.2, 4.3, 4.0}, 
      {4.1, -1.1};
};

ここでは、多次元配列 matrix を作成しています。これは二つの次元を持つ配列です。もっと詳しく知りたい場合は、以下のサイトを訪れてくださいJava 多次元配列