Javaで配列を出力する方法|初心者向けに3つの手法を解説
Javaで配列を出力する方法
配列とは、同じデータ型の要素を一定数だけ順序付けて格納できるJavaのデータ構造です。
Java開発者はデータを保存する際によく配列を使用します。例えば、スーパーマーケットで販売しているシリアルバーの仕入先5社の名前を配列に格納したり、地元の湖に生息する9種類の魚の名前を別の配列に格納したりできます。
Javaで配列を扱っていると、配列の中身をコンソールに出力したい場面に出くわすことがあります。その方法は複数あります。
この記事では、具体例を使いながら、Javaで配列を出力するための3つのアプローチを解説します。読み終える頃には、Javaでの配列出力をマスターできているでしょう。
Javaの配列の基礎
配列はJavaプログラミングにおいて重要な要素です。大量の値を効率的に保存・アクセスできます。同じデータ型の値を保持するために複数の変数を個別に宣言する代わりに、1つの配列を宣言するだけで、必要なすべての値をまとめて格納できます。
以下はJavaにおける配列の基本的な例です:
String[] birds; birds = new String[10];
上記のコードでは、まず文字列値を格納できる「birds」という配列を宣言し、次にbirds配列が格納できる要素数(10)を指定しています。
Java配列の基本がわかったところで、配列の出力方法を見ていきましょう。
Arraysライブラリを使って配列を出力する
JavaのArraysライブラリには、配列を操作するための便利な機能が多数用意されています。その一つがtoString()メソッドで、配列の内容をコンソールに出力するために使用できます。
Arraysライブラリをコードで使用するには、まずライブラリをインポートする必要があります。以下のコードでインポートできます:
import java.util.Arrays;
インポートが完了すれば、Arraysライブラリの各機能を利用できるようになります。
例えば、お気に入りのサンドイッチ店の名前を格納した配列があるとします。ランチの場所を探すために、この配列をコンソールに出力してみましょう。以下のコードで実現できます:
import java.util.Arrays;
class PrintSandwichShops {
public static void main(String[] args) {
String[] shops = {"Kat's Sandwiches", "Swanson Cafe", "Lakeland's Salads and Sandwiches", "Le Petit Sandwich"};
System.out.println(Arrays.toString(shops));
}
}
このコードを実行すると、次のように出力されます:
[Kat's Sandwiches, Swanson Cafe, Lakeland's Salads and Sandwiches, Le Petit Sandwich]
コードの流れを確認しましょう。まず「shops」という配列を宣言し、4つのお気に入りサンドイッチ店を文字列として格納しています。次にArrays.toString()メソッドで配列を読みやすい文字列に変換し、println()でその結果をコンソールに出力しています。
拡張for文(for-eachループ)を使って配列を出力する
プログラミングにおいて、forループは特定の条件が満たされるまでコードブロックを繰り返し実行するために使用されます。例えば、条件が満たされるまで10回ループを実行し、その後プログラムはループを抜けて残りの処理に進みます。
開発者は拡張for文(for-eachループとも呼ばれます)を使って、配列内のすべての要素を順番に反復処理します。出力処理と組み合わせれば、配列の全要素をコンソールに表示できます。
例えば、今年バードウォッチングで見かけた鳥の名前を格納した配列があるとします。観察した鳥の名前を確認するために、この配列の内容をコンソールに出力してみましょう。以下のコードで実現できます:
class PrintBirds {
public static void main(String[] args) {
String[] birds = {"Robin", "Chaffinch", "Starling", "Goldfinch", "Great Tit"};
for (String bird: birds) {
System.out.println(bird);
}
}
}
このコードを実行すると、次のように出力されます:
Robin Chaffinch Starling Goldfinch Great Tit
このコードでは、for-eachループを使ってbirds配列内のすべての鳥の名前を反復処理し、各名前をコンソールに出力しています。
まず、5つの文字列値を格納する「birds」という配列を宣言しました。次に、以下の構文でfor-eachループを作成しています:
for (String bird: birds) {
}
このステートメントにより、birds配列内のすべての要素が順番に処理されます。
そして、System.out.println()を使って配列の各要素を出力しました。
多次元配列を出力する
多次元配列とは、行と列で表現される2次元構造を持つ配列のことです。多次元配列を扱う際、その内容をコンソールに出力したくなることがあります。
この場合も、Java Arraysライブラリに含まれるArrays.deepToString()メソッドを使えば簡単に実現できます。
例えば、お気に入りの本をジャンル別に整理した多次元配列があるとします。配列の最初の行にはビジネス書のリストが、次の行には自己啓発書のリストが格納されています。以下のコードで多次元配列の内容を出力できます:
import java.util.Arrays;
class PrintBooks {
public static void main(String[] args) {
String[][] books = {
{"The Secrets of Sand Hill Road", "The Upstarts"},
{"Atomic Habits", "How to Win Friends and Influence People"}
};
System.out.println(Arrays.deepToString(books));
}
}
このコードを実行すると、次のように出力されます:
[[The Secrets of Sand Hill Road, The Upstarts], [Atomic Habits, How to Win Friends and Influence People]]
ご覧のとおり、多次元配列の内容が正しく出力されました。プログラムの動作を確認しましょう。
まず、2つの行を持つ「books」という多次元配列を宣言しました。最初の行にはビジネス書のリストが、2行目には自己啓発書のリストが格納されています。
次に、Arrays.deepToString()メソッドでbooksの内容を読みやすい形式に変換します。最後に、System.out.println()を使ってdeepToString()メソッドの結果をコンソールに出力しています。
まとめ
Javaで配列を扱う際、配列の出力は非常によく使われる基本操作です。
この記事では、具体例を挙げながら、Javaで配列を出力する3つの主要な方法を解説しました。拡張for文(for-eachループ)、Arrays.toString()メソッド、そして多次元配列に対応したArrays.deepToString()メソッドの3つです。
これで、プロのようにJavaで配列を出力するための知識が身につきました。ぜひ実際のコーディングに活かしてください!
-
JavaのArrayIndexOutOfBoundsExceptionとは?発生原因と対処法を解説
配列とインデックスの基本 配列(Array)とは、同じ型の要素を固定サイズで順番に格納するためのデータ構造(コンテナ/オブジェクト)です。配列のサイズ(長さ)は生成時に決定され、後から変更することはできません。 配列内の各要素の位置は「インデックス(添字)」と呼ばれます。Javaの配列は0始まりのため、最初の要素はインデックス0、2番目の要素はインデックス1、というように順に番号が割り当てられます。 配列の各要素へは、「配列名[インデックス]」という形式の式を使ってアクセスします。 System.out.println(myArray[3]); // 1457 が出力される たとえばサイズ7
-
JavaでList(リスト)を配列に変換する方法|toArray()とArrays.asList()の使い方
Javaの開発において、List(リスト)と配列(Array)の相互変換は非常によく使われる基本的な操作です。 Listを配列に変換する最も簡単かつ推奨される方法は、.toArray()メソッドを使うことです。逆に、配列をListに戻したい場合は、Arrays.asList()メソッドを使用します。 以下では、文字列(String)のListや整数(Integer)のListを、それぞれ対応する配列に変換する具体例を紹介します。 String型のListを配列に変換する import java.util.ArrayList; import java.util.List; public cl