【プログラミングしてみよう74】JavaのArraysクラスで配列操作をスッキリ書く

Java

前回はLinkedListの使い方を学びました。

今回は「Arrays」クラスについて解説します。java.util.Arrays は配列に対する便利な操作をまとめたユーティリティクラスで、ソート・検索・コピー・比較などが1行で書けます。

サンプルコード

ファイル作成

「Java62」フォルダに ArraysTest.java という名前でファイルを作成します

コード入力

import java.util.Arrays;

public class ArraysTest {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 9, 3, 7, 4, 6};

        // 表示
        System.out.println("元の配列: " + Arrays.toString(numbers));

        // ソート
        int[] sorted = numbers.clone();
        Arrays.sort(sorted);
        System.out.println("ソート後: " + Arrays.toString(sorted));

        // 二分探索(ソート済み配列に使う)
        int idx = Arrays.binarySearch(sorted, 7);
        System.out.println("7のインデックス: " + idx);

        // コピー
        int[] copied = Arrays.copyOf(numbers, 5); // 先頭5要素
        System.out.println("先頭5件コピー: " + Arrays.toString(copied));

        int[] rangeCopied = Arrays.copyOfRange(numbers, 2, 6); // インデックス2〜5
        System.out.println("範囲コピー[2,6): " + Arrays.toString(rangeCopied));

        // 比較
        int[] a = {1, 2, 3};
        int[] b = {1, 2, 3};
        int[] c = {1, 2, 4};
        System.out.println("\naとbは同じ?: " + Arrays.equals(a, b));
        System.out.println("aとcは同じ?: " + Arrays.equals(a, c));

        // 初期化(全要素を同じ値で埋める)
        int[] filled = new int[5];
        Arrays.fill(filled, 99);
        System.out.println("fill(99): " + Arrays.toString(filled));

        // 2次元配列の表示
        int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        System.out.println("\n2次元配列: " + Arrays.deepToString(matrix));

        // StreamへVariant変換
        System.out.print("Streamで偶数: ");
        Arrays.stream(numbers)
              .filter(n -> n % 2 == 0)
              .forEach(n -> System.out.print(n + " "));
        System.out.println();
    }
}

コンパイル

javac ArraysTest.java

実行

java ArraysTest

実行結果は次のようになります。

元の配列: [5, 2, 8, 1, 9, 3, 7, 4, 6]
ソート後: [1, 2, 3, 4, 5, 6, 7, 8, 9]
7のインデックス: 6
先頭5件コピー: [5, 2, 8, 1, 9]
範囲コピー[2,6): [8, 1, 9, 3]

aとbは同じ?: true
aとcは同じ?: false
fill(99): [99, 99, 99, 99, 99]

2次元配列: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Streamで偶数: 2 8 4 6 

よく使うメソッド一覧

Arrays.toString(arr)          // 配列を文字列に変換
Arrays.deepToString(arr)      // 多次元配列を文字列に変換
Arrays.sort(arr)              // ソート
Arrays.binarySearch(arr, key) // 二分探索
Arrays.copyOf(arr, n)         // 先頭n要素をコピー
Arrays.copyOfRange(arr, f, t) // 範囲コピー
Arrays.equals(a, b)           // 配列の内容比較
Arrays.fill(arr, val)         // 全要素を同じ値で埋める
Arrays.stream(arr)            // StreamAPIに変換

まとめ

Arrays クラスを使うことで、配列のソート・検索・コピー・比較・初期化をシンプルに書けます。特に toString() でのデバッグ表示と stream() でのStream API連携はよく使います。配列を扱う際はまず Arrays クラスで使えるメソッドがないか確認しましょう。

2026/08/22(土) ぱんまる

コメント

タイトルとURLをコピーしました