Java配列完全マスター:宣言、生成、処理、Arraysユーティリティ
配列とは
Javaの配列は、同型要素の固定サイズ順次コレクションを格納するデータ構造です。個別変数number0, number1...代わりにnumbers[0], numbers[1]...で管理できます。
配列変数の宣言
dataType[] arrayRefVar; // 推奨スタイル // または dataType arrayRefVar[]; // C/C++由来、非推奨
例
double[] myList; // 推奨
double myList[]; // 動作するが非推奨
配列の生成
new演算子で生成
arrayRefVar = new dataType[arraySize];
2動作:配列オブジェクト生成、参照を変数に代入。
宣言+生成+初期化を1文で
dataType[] arrayRefVar = new dataType[arraySize];
初期値リストで生成
dataType[] arrayRefVar = {value0, value1, ..., valueK};
インデックスアクセス
0ベース:0 〜 arrayRefVar.length-1
例
double[] myList = new double[10]; // 10要素、インデックス0-9
配列処理:for / 拡張for
全要素同型・サイズ既知のため、forまたはforeachが適しています。
完全例:生成・初期化・合計・最大値
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// 全要素出力
for (int i = 0; i < myList.length; i++)
System.out.println(myList[i] + " ");
// 合計
double total = 0;
for (int i = 0; i < myList.length; i++)
total += myList[i];
System.out.println("Total is " + total);
// 最大値
double max = myList[0];
for (int i = 1; i < myList.length; i++)
if (myList[i] > max) max = myList[i];
System.out.println("Max is " + max);
}
}
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
拡張forループ(foreach)
JDK 1.5導入。インデックス変数なしで順次走査。
for (double element : myList) {
System.out.println(element);
}
配列のメソッド渡し
プリミティブと同様に配列もメソッド引数として渡せます(参照渡し)。
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
}
printArray(new int[]{3, 1, 2, 6, 4, 2});
配列を返すメソッド
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i = 0, j = result.length - 1; i < list.length; i++, j--)
result[j] = list[i];
return result;
}
java.util.Arrays クラス
ソート、検索、比較、充填などの静的ユーティリティメソッドを提供。すべてプリミティブ型にオーバーロード済み。
| # | メソッド | 説明 |
|---|---|---|
| 1 | binarySearch(Object[] a, Object key) | ソート済み配列を二分探索。見つかればインデックス、なければ(-挿入位置-1) |
| 2 | equals(long[] a, long[] a2) | 2配列が同長・全要素等価ならtrue。全プリミティブ型対応 |
| 3 | fill(int[] a, int val) | 全要素を指定値で充填。全プリミティブ型対応 |
| 4 | sort(Object[] a) | 自然順序で昇順ソート。全プリミティブ型対応 |
多次元配列
配列の配列として実装:int[][] matrix = new int[3][4];。ジャグ配列(行ごとに長さ異なる)も可能。
次のトピック
配列の基礎を押さえたら、コレクションフレームワーク(ArrayList, HashMap等)へ進むのが定石です。
Java
- C# 配列をマスターする:宣言、初期化、操作
- C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
- C++動的配列の確保をマスター:コード例付き実践ガイド
- Java演算子をマスター:種類、構文、実践例
- Java配列コピー技法:包括的ガイド
- Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
- Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
- Javaアノテーション完全ガイド:種類、配置場所、実践例
- Java配列チュートリアル:宣言、生成、初期化の完全ガイド
- Javaオブジェクト配列の作成:ステップバイステップガイド
- Javaでバブルソートをマスター:わかりやすい例とステップバイステップ解説