ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
配列の宣言と初期化
// 1. サイズ指定で生成(全要素デフォルト値)
int[] a = new int[5]; // {0, 0, 0, 0, 0}
String[] s = new String[3]; // {null, null, null}
boolean[] b = new boolean[3]; // {false, false, false}
// 2. リテラル初期化
int[] nums = {1, 2, 3, 4, 5};
String[] names = {"Taro", "Hanako", "Jiro"};
// 3. new + 初期化子
int[] m = new int[]{10, 20, 30};
// 4. 宣言と代入を分ける場合は new 必須
int[] x;
x = new int[]{1, 2, 3}; // OK
// x = {1, 2, 3}; // ❌ コンパイルエラー
// 宣言の書き方バリエーション
int[] aa; // 推奨
int aa[]; // 旧 C 風(非推奨)
要素アクセスと長さ
int[] arr = {10, 20, 30, 40, 50};
arr[0]; // 10
arr[arr.length - 1]; // 50
arr.length; // 5 ← フィールド(() 不要)
arr[2] = 99; // 代入
System.out.println(arr[2]); // 99
// 範囲外アクセス
arr[10]; // ArrayIndexOutOfBoundsException
arr[-1]; // 同上
ループによる走査
int[] nums = {1, 2, 3, 4, 5};
// 1. インデックス for
for (int i = 0; i < nums.length; i++) {
System.out.println(i + ": " + nums[i]);
}
// 2. 拡張 for(インデックス不要なら推奨)
for (int n : nums) {
System.out.println(n);
}
// 3. Stream (Java 8+)
java.util.Arrays.stream(nums).forEach(System.out::println);
// 4. 合計
int sum = 0;
for (int n : nums) sum += n;
// または
int sum2 = java.util.Arrays.stream(nums).sum();
多次元配列
// 2 次元配列(矩形)
int[][] grid = new int[3][4]; // 3 行 4 列、全 0
grid[0][0] = 1;
grid[2][3] = 99;
grid.length; // 3(行数)
grid[0].length; // 4(列数)
// リテラル
int[][] m = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// ジャグ配列(行ごとに列数が違う)
int[][] jag = new int[3][];
jag[0] = new int[]{1};
jag[1] = new int[]{1, 2};
jag[2] = new int[]{1, 2, 3};
// 走査
for (int[] row : m) {
for (int v : row) System.out.print(v + " ");
System.out.println();
}
java.util.Arrays クラスの主要メソッド
| メソッド | 動作 |
|---|---|
Arrays.sort(arr) | 昇順ソート(破壊的) |
Arrays.sort(arr, comparator) | カスタム比較器でソート |
Arrays.copyOf(arr, newLen) | 長さを変えてコピー |
Arrays.copyOfRange(arr, from, to) | 部分コピー |
Arrays.fill(arr, value) | 全要素を value で埋める |
Arrays.equals(a, b) | 要素ごとの等価比較 |
Arrays.toString(arr) | 文字列化(デバッグ用) |
Arrays.asList(arr) | 固定長 List に変換 |
Arrays.stream(arr) | Stream に変換 |
Arrays.binarySearch(arr, key) | ソート済配列を二分探索 |
import java.util.Arrays;
int[] arr = {3, 1, 4, 1, 5, 9, 2, 6};
Arrays.sort(arr); // [1, 1, 2, 3, 4, 5, 6, 9]
System.out.println(Arrays.toString(arr));
int[] copy = Arrays.copyOf(arr, 10); // 末尾に 0 を 2 個追加
int[] part = Arrays.copyOfRange(arr, 2, 5); // {2, 3, 4}
// Stream
int max = Arrays.stream(arr).max().getAsInt();
int sum = Arrays.stream(arr).sum();
double avg = Arrays.stream(arr).average().getAsDouble();
// 比較
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
a == b; // false(参照比較)
Arrays.equals(a, b); // true
配列 ⇔ List 変換
import java.util.*;
// 配列 → List
String[] arr = {"a", "b", "c"};
List list1 = Arrays.asList(arr); // 固定長 List
List list2 = new ArrayList<>(Arrays.asList(arr)); // 可変長
List list3 = List.of(arr); // Java 9+ 不変
// List → 配列
List src = List.of("x", "y", "z");
String[] out = src.toArray(new String[0]);
String[] out2 = src.toArray(String[]::new); // Java 11+
// プリミティブ配列 ↔ Stream
int[] ints = {1, 2, 3};
List boxed = Arrays.stream(ints).boxed().toList();
int[] back = boxed.stream().mapToInt(Integer::intValue).toArray();
配列と ArrayList の使い分け
| 項目 | 配列 | ArrayList |
|---|---|---|
| 長さ | 固定(変更不可) | 可変 |
| 要素アクセス | arr[i] | list.get(i) |
| サイズ | arr.length | list.size() |
| プリミティブ | OK (int[] 等) | NG (Integer 等のラッパー必須) |
| 性能 | 速い(連続メモリ) | autoboxing オーバーヘッド |
| 用途 | サイズ既知・大量数値 | 動的に追加削除する場合 |
よくある例外
int[] arr = new int[3];
// ArrayIndexOutOfBoundsException
arr[3] = 1; // インデックス 3 は範囲外 (0-2)
arr[-1] = 1; // 負も範囲外
// NullPointerException
int[] nullArr = null;
nullArr.length; // NPE
nullArr[0] = 1; // NPE
// ArrayStoreException(参照型配列のみ)
Object[] objs = new String[3]; // OK(共変)
objs[0] = 100; // 実体は String[] なので Integer 入れられない
FAQ
Q: 配列のサイズを途中で変更したい
A: 不可。Arrays.copyOf で新サイズの配列を作り直すか、最初から ArrayList を使う。
Q: 配列を初期化済みの List に渡すとどうなる?
A: Arrays.asList は固定長 List(要素変更可だが add/remove 不可)。可変長が欲しいなら new ArrayList<>(Arrays.asList(arr))。
Q: 配列を System.out.println しても住所しか出ない
A: Arrays.toString(arr) を使う。多次元なら Arrays.deepToString(grid)。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?