Kotlinでリストやマップを簡単にループ処理する方法!初心者でもわかる繰り返しの基本
生徒
「Kotlinで、複数のデータを1つずつ取り出して処理したいんですけど、どうすればいいですか?」
先生
「それには、リストやマップといったデータ構造を使って、ループ処理をすると便利ですよ。」
生徒
「ループって、同じことを繰り返す処理ですよね?それを簡単に書けるんですか?」
先生
「そうです。Kotlinでは、リストやマップをとても簡単にループで処理できますよ。さっそく基本から説明しましょう。」
1. リスト(List)とは?
Kotlinでは、リスト(List)というデータ型を使って、複数の値を1つにまとめて扱えます。
例えば、3つのフルーツをまとめたリストは次のように作ります。
val fruits = listOf("りんご", "バナナ", "みかん")
listOf()の中にデータをカンマで区切って書くことで、複数の値をまとめて1つの変数fruitsに入れられます。
2. for文でリストをループ処理する方法
リストの中の値を順番に取り出して処理したいときには、for文を使います。
val fruits = listOf("りんご", "バナナ", "みかん")
for (fruit in fruits) {
println(fruit)
}
for (fruit in fruits)の意味は、「fruitsの中から1つずつfruitという名前で取り出して、処理を繰り返す」ということです。
実行すると、次のような出力が得られます。
りんご
バナナ
みかん
3. インデックス(番号)も一緒に取り出したいとき
リストの要素だけでなく、位置番号(インデックス)も一緒に使いたいときはwithIndex()を使います。
val fruits = listOf("りんご", "バナナ", "みかん")
for ((index, fruit) in fruits.withIndex()) {
println("[$index] $fruit")
}
withIndex()を使うと、0から始まる番号と値のペアで取り出すことができます。
このコードの実行結果は以下のようになります。
[0] りんご
[1] バナナ
[2] みかん
4. マップ(Map)とは?
マップ(Map)は、「キー」と「値」をセットで管理するデータ構造です。たとえば「名前」と「年齢」のように、対になった情報を扱えます。
val ages = mapOf("たろう" to 20, "はなこ" to 25)
toという記号を使って、「キー → 値」のペアを作ります。
5. マップのループ処理の書き方
マップの中身を1つずつ取り出すときも、for文を使います。
val ages = mapOf("たろう" to 20, "はなこ" to 25)
for ((name, age) in ages) {
println("$name さんは $age 歳です")
}
(name, age)のように、キーと値を変数で受け取ることで、1行ずつ読みやすく処理できます。
実行すると次のように表示されます。
たろう さんは 20 歳です
はなこ さんは 25 歳です
6. forEachを使ってもっと簡単に書く方法
リストやマップにはforEachという特別な書き方も用意されています。これは、1つずつデータを取り出して処理するための便利な関数です。
リストの場合:
val fruits = listOf("りんご", "バナナ", "みかん")
fruits.forEach { fruit ->
println(fruit)
}
マップの場合:
val ages = mapOf("たろう" to 20, "はなこ" to 25)
ages.forEach { (name, age) ->
println("$name さんは $age 歳です")
}
forEachを使うと、よりシンプルに書くことができます。特に処理内容が短いときに便利です。
まとめ
Kotlinでリストやマップをループ処理する方法は、初心者でも理解しやすく、日常的なプログラミングに役立つ重要な基礎知識です。とくに、りんごやバナナなどのフルーツをまとめたリスト、たろうやはなことその年齢を示すマップなど、実際の情報のように扱いやすく整理できる点はとても便利です。繰り返し処理の基本であるfor文、番号を同時に扱えるwithIndex、よりすっきり書けるforEachなど、学んだ内容はKotlinの特徴を活かした書き方で、可読性と効率性を高める効果があります。このような書き方を理解することで、自然にプログラム全体の流れが読みやすく整理され、複雑な処理にも対応しやすくなります。 リストとマップはKotlinでもよく使われる基本データ構造で、アプリ開発のさまざまな場面で登場します。例えば、ユーザー名一覧、商品リスト、成績表、設定情報など、日常的なデータ管理にも応用できます。今回の内容をしっかり押さえることで、今後のステップでもスムーズに理解が進み、さらに高度な処理や画面表示にも応用できるようになります。
サンプルプログラムでさらに理解を深めよう
ここでは、記事で紹介した内容を振り返りながら、リストとマップのループ処理を組み合わせたサンプルを示します。実際に動く形で確認することで、学んだことをより深く理解できます。
val fruits = listOf("りんご", "バナナ", "みかん")
val ages = mapOf("たろう" to 20, "はなこ" to 25)
println("フルーツ一覧を表示します:")
fruits.forEach { fruit ->
println("フルーツ:$fruit")
}
println("人物と年齢を表示します:")
ages.forEach { (name, age) ->
println("$name さんは $age 歳です")
}
println("インデックスつきフルーツ一覧:")
fruits.withIndex().forEach { (index, fruit) ->
println("[$index] $fruit")
}
このサンプルでは、リストのループ処理、マップのループ処理、インデックスつき処理などを一度に確認でき、Kotlinの繰り返し処理の基本がしっかり身につきます。実際にコードを手を動かして試すことで、記憶にも定着しやすくなります。
生徒
「今日の内容で、リストとマップのループがすごくわかりやすくなりました!特にwithIndexが便利でした。」
先生
「そうですね。インデックスを使うと、何番目のデータかすぐにわかりますからね。実際の開発でもよく使われます。」
生徒
「forEachも、すっきり書けて読みやすくて良かったです!これなら難しそうに見える処理でも書けそうです。」
先生
「その意識はとても良いですね。Kotlinは簡潔に書けるのが強みなので、今日覚えた書き方はたくさん使ってみてください。」
生徒
「はい!リストもマップも、これからもっと練習して慣れていきます!」
先生
「その調子です。次は条件分岐や関数も合わせて学んでいくと、さらに理解が深まりますよ。」