Javaでコレクションの要素を出力する方法!サンプルコード付きでわかりやすく解説
この記事では、Javaでコレクション(Collection)の内容を画面に出力する方法を解説します。コレクションフレームワークとは、複数のオブジェクトをひとまとめに格納し、効率的に操作するための統一的なアーキテクチャを提供する仕組みです。検索・ソート・挿入・更新・削除といった、データに対する基本的な操作はすべてコレクション経由で実現できます。
実行例
ここでは、言語名とIDを持つオブジェクトを4つコレクションに格納し、それらを順番に表示するプログラムを考えます。プログラムを実行すると、次のような結果が得られます。
期待される出力:
The Elements of the collection are: Language : Java | Language_id : 101 Language : Scala | Language_id : 102 Language : Python | Language_id : 103 Language : Mysql | Language_id : 104
アルゴリズム
- 処理を開始する。
- コレクション(ArrayList)を宣言する。
- 格納する値(データ)を定義する。
- object_1〜object_4 のオブジェクトを生成し、それぞれをコレクションに追加する。
- 拡張forループを使って、コレクションの全要素を表示する。
- 処理を終了する。
サンプルコード①:すべての処理をmainメソッドにまとめるパターン
最初の例では、オブジェクトの生成から表示までの一連の処理を、mainメソッド内にまとめて記述します。
import java.util.*;
public class Demo {
String name;
int id;
Demo(String s, int n){
name = s;
id = n;
}
public String toString(){
return "Language : " + name + " | Language_id : " + id;
}
static void print(ArrayList<Demo> input_array){
System.out.println("The Elements of the collection are: ");
for (Demo element : input_array)
System.out.println(element);
}
public static void main(String[] args){
ArrayList<Demo> input_array = new ArrayList<Demo>();
Demo object_1 = new Demo("Java", 101);
Demo object_2 = new Demo("Scala", 102);
Demo object_3 = new Demo("Python", 103);
Demo object_4 = new Demo("Mysql", 104);
input_array.add(object_1);
input_array.add(object_2);
input_array.add(object_3);
input_array.add(object_4);
print(input_array);
}
}
実行結果
The Elements of the collection are: Language : Java | Language_id : 101 Language : Scala | Language_id : 102 Language : Python | Language_id : 103 Language : Mysql | Language_id : 104
サンプルコード②:forEachとラムダ式を使うパターン
次の例では、表示処理をforEachメソッドとラムダ式で記述します。ループ構文を明示的に書かなくてよいため、コードがより簡潔になります。実行結果はサンプルコード①と同じです。
import java.util.*;
public class Demo {
String name;
int id;
Demo(String s, int n){
name = s;
id = n;
}
public String toString(){
return "Language : " + name + " | Language_id : " + id;
}
public static void main(String[] args){
ArrayList<Demo> input_array = new ArrayList<Demo>();
input_array.add(new Demo("Java", 101));
input_array.add(new Demo("Scala", 102));
input_array.add(new Demo("Python", 103));
input_array.add(new Demo("Mysql", 104));
System.out.println("The Elements of the collection are: ");
input_array.forEach(element -> System.out.println(element));
}
}
実行結果
The Elements of the collection are: Language : Java | Language_id : 101 Language : Scala | Language_id : 102 Language : Python | Language_id : 103 Language : Mysql | Language_id : 104
ポイント解説
- toString()のオーバーライド:System.out.println()にオブジェクトを渡すと、自動的にtoString()が呼び出されます。このメソッドをオーバーライドしておけば、好きな形式で要素を整形して表示できます。
- 拡張forループ:「for (Demo element : list)」の形式で、コレクションの各要素をシンプルに取り出せます。
- forEach+ラムダ式:Java 8以降であれば、コレクションのforEachメソッドにラムダ式を渡すことで、ループ処理をさらに短く記述できます。
- ArrayList:サイズが可変の配列のように動作するList実装で、add()メソッドによって要素を末尾に追加できます。
まとめ
コレクションの内容を表示するには、要素となるクラスでtoString()をオーバーライドし、拡張forループまたはforEachで順に出力するのが基本です。デバッグやログ出力の際にも役立つテクニックなので、ぜひマスターしておきましょう。
-
Javaで行列をZ字形に出力するプログラムの書き方
行列(マトリックス)を「Z」の字形に沿って出力するには、1行目を左から右へ → 右端から左下への対角要素 → 最終行を左から右へ の順に要素を表示していきます。本記事では、その処理を実現するJavaプログラムをサンプルコードとともに解説します。 サンプルコード import java.lang.*; import java.io.*; public class Demo{ public static void z_shape(int my_arr[][], int n){ int i = 0, j, k; // 1行目を左から右へ出力 f
-
Javaで文字列の重複しない順列をすべて出力する方法
文字列の個別の順列(重複を除いた順列)をすべて出力するJavaプログラムは、以下の通りです。 サンプルコード import java.util.ArrayList; public class Demo{ static boolean is_present(String my_str, ArrayList<String> rem){ for (String str : rem){ if (str.equals(my_str)) &nb