ビジネスチャット、テレビ会議、ファイル共有、スケジュール管理を統合したグループウェア。IP Messenger 互換。

Javaの基本的な配列操作まとめ

宣言と同時に配列を初期化

次のように記述することで、宣言と同時に配列を初期化できます。

サンプルコード

static void arraySample() {
    String[] s = {"りんご", "みかん", "ばなな"};
}
System.out.println(s[1]);
出力結果:
みかん

配列の要素数を取得する – length

配列にいくつ要素が入っているかを取得したい場合は length を使います。length はメソッドではなく、フィールドである点に若干の注意が必要です。

サンプルコード

static void lengthSample() {
    String[] s1 = {"りんご", "みかん", "ぶどう"};
    String[] s2 = {};
    System.out.println(s1.length);
    System.out.println(s2.length);
}
出力結果:
3
0

配列をコピーする – clone

ある配列と同じ配列を作りたい場合は、clone が便利です。

サンプルコード

static void cloneSample() {
    String[] s1 = {"りんご", "みかん", "ぶどう"};
    String[] s2 = s1.clone();
    System.out.println(s1[0] + ' ' + s1[1] + ' ' + s1[2]);
    System.out.println(s2[0] + ' ' + s2[1] + ' ' + s2[2]);
}
出力結果:
りんご みかん ぶどう
りんご みかん ぶどう

配列をコピーする – System.arraycopy

Java の配列は、初期化時のサイズで固定されてしまいます。一度作った配列のサイズを大きくしたい場合は System.arraycopy を使う必要があります。

arraycopy は clone と同じく配列をコピーする際に使用しますが、clone よりも細かな設定ができます。

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
 src...コピー元の配列
 srcPos...コピー元配列(src)のコピーする開始位置
 dest...コピー先の配列
 destPos...コピー先配列(dest)のコピーする開始位置
 length...コピーする要素の数

サンプルコード

static void arraycopySample() {
    String[] s1 = {"りんご", "みかん", "ぶどう"};
    String[] s2 = new String[5];
    System.arraycopy(s1, 0, s2, 0, 3);
    s2[3] = "ばなな";
    s2[4] = "さくらんぼ";
    System.out.println(s1[0] + " " + s1[1] + " " + s1[2]);
    System.out.println(s2[0] + " " + s2[1] + " " + s2[2] + " " + s2[3] + " " + s2[4]);
}
出力結果:
りんご みかん ぶどう
りんご みかん ぶどう ばなな さくらんぼ

配列の結合をする場合も arraycopy を使うと便利です。

サンプルコード

static void joinArraySample() {
    String[] s1 = {"りんご", "みかん", "ぶどう"};
    String[] s2 = {"ばなな", "さくらんぼ", "もも"};
    int rLen = s1.length + s2.length;
    String[] rStr = new String[rLen]; //s1とs2両方の長さ分の配列を初期化
    System.arraycopy(s1, 0, rStr, 0, s1.length);
    System.arraycopy(s2, 0, rStr, s1.length, s2.length); //コピー先配列の開始位置の設定がポイント
    System.out.println(rStr[0] + " " + rStr[1] + " " + rStr[2] + " " + rStr[3] + " " + rStr[4] + " " + rStr[5]);
}
出力結果:
りんご みかん ぶどう ばなな さくらんぼ もも

多次元配列を作る

配列の中に配列を作成することで、多次元配列を作成できます。表データを格納する場合などに役立ちます。

サンプルコード

static void twoDArraySample() {
    int[] a1 = {38, 84, 98};
    int[] a2 = {32, 11, 56};
    int[] a3 = {82, 77, 8};
    int[][] twoDArray = {a1, a2, a3};
    for (int[] a : twoDArray) {
        for (int score : a) {
            System.out.print(score + " ");
        }
        System.out.println("");
    }
}
出力結果:
38 84 98 
32 11 56 
82 77 8