Kotlinの拡張関数で繰り返し処理を効率化!初心者でもわかるforEachやmapの活用例
生徒
「Kotlinで同じような処理を何回も書くのが面倒なんです。もっと効率よく書けないんですか?」
先生
「実はKotlinには『拡張関数』という便利な機能があって、繰り返し処理を短く・きれいに書けるんですよ。」
生徒
「拡張関数ってなんですか?難しそうな名前ですけど…」
先生
「名前はちょっと難しそうに聞こえますが、使い方はとてもシンプルです。さっそく見ていきましょう。」
1. 繰り返し処理ってなに?
繰り返し処理とは、リストなどのデータに対して「ひとつずつ処理を行うこと」です。Kotlinではfor文のほかに、forEachやmapといった拡張関数を使うことで、コードを短く書くことができます。
2. 拡張関数とは?初心者にもわかりやすく
拡張関数とは、もともとあるクラス(例:リスト)に対して、自分であとから便利な機能を「追加」できるKotlinの特徴的な機能です。
たとえば、listOf()で作ったリストに対してforEachを呼び出すのは、実はリストに拡張された関数なんです。
3. forEachで繰り返し処理をシンプルに
forEachはリストなどの要素をひとつずつ取り出して処理します。これを使えばfor文よりも短く書けます。
fun main() {
val names = listOf("太郎", "花子", "次郎")
names.forEach {
println("こんにちは、$it さん")
}
}
こんにちは、太郎 さん
こんにちは、花子 さん
こんにちは、次郎 さん
このように、forEachを使うことで、コードがすっきりします。
4. mapを使って新しいリストを作る
mapは、元のリストの要素を変換して、新しいリストを作りたいときに使います。計算や文字列の加工に便利です。
fun main() {
val numbers = listOf(1, 2, 3)
val doubled = numbers.map { it * 2 }
println(doubled)
}
[2, 4, 6]
このように、mapを使えば1つずつ手作業でリストを作る必要がなくなります。
5. filterで条件に合うデータだけを抽出
filterは、条件に合う要素だけを取り出す拡張関数です。たとえば「偶数だけほしい」などのときに使えます。
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val even = numbers.filter { it % 2 == 0 }
println(even)
}
[2, 4]
複雑な条件でも、filterなら1行で書けて読みやすいですね。
6. 拡張関数の組み合わせで最強に
実はmapやfilterは、組み合わせて使うことができます。
fun main() {
val scores = listOf(40, 70, 90, 55)
val result = scores
.filter { it >= 60 }
.map { "$it 点は合格です" }
result.forEach { println(it) }
}
70 点は合格です
90 点は合格です
このように、filterで条件に合うデータを取り出し、mapで加工して、forEachで出力という流れが一気に書けます。
7. 拡張関数で繰り返し処理を効率化するメリット
- コードが短くて見やすい
- 複雑な処理も1行で書ける
- 組み合わせることで、処理の流れが直感的になる
特に初心者のうちは、for文を何行も書いて混乱しがちです。拡張関数を使えば、「何をしたいか」がコードを読むだけで伝わりやすくなります。
8. Kotlinの拡張関数は日常にも役立つ
たとえば、買い物リストの金額を計算したり、名前を敬称付きで表示したり、試験の合格判定を行ったりと、日常生活に近い処理にも拡張関数はとても便利です。
覚えてしまえば、もうfor文に戻れない!という人も多いんですよ。
まとめ
Kotlinにおける拡張関数は、繰り返し処理やリスト操作を簡潔に書けるようにする非常に強力な機能です。今回の記事では、forEach、map、filterなどの拡張関数を中心に、初心者にもわかりやすい活用例を通して、コードを短く・読みやすく・効率的に書く方法を学びました。
特にforEachは、リスト内の要素を一つずつ処理する場面で活躍し、mapは各要素に処理を適用して新しいリストを作成するのに役立ちます。そしてfilterは、条件に合った要素だけを抽出するのに便利です。これらは単体でも便利ですが、組み合わせて使うことで「データの絞り込み」「加工」「出力」といった一連の処理を、シンプルかつ自然な流れで記述することが可能です。
実際の場面で考えてみましょう。たとえば、商品の価格一覧から1,000円以上のアイテムだけを選び、「〇〇円の商品です」と表示する処理も、Kotlinの拡張関数を使えば一行ずつ簡潔に書けます。以下にその例を示します。
fun main() {
val prices = listOf(500, 1200, 800, 2000)
prices
.filter { it >= 1000 }
.map { "$it 円の商品です" }
.forEach { println(it) }
}
1200 円の商品です
2000 円の商品です
このようにKotlinの拡張関数を使うことで、繰り返し処理や条件分岐、データの加工といった操作を、直感的で読みやすいコードとして実現できます。これは、チーム開発やメンテナンスのしやすさにもつながるため、学習初期のうちから取り入れておくことをおすすめします。
また、拡張関数は「既存のクラスに自分で機能を追加する」ことも可能なので、今後カスタム拡張関数を作ることによって、さらにコードの再利用性と表現力を高めていけます。
KotlinのforEach、map、filterは、業務アプリや趣味のアプリ問わず活躍の場面が多く、リスト処理や繰り返し処理を学ぶ上での必須スキルともいえます。まずは基本的な使い方に慣れて、少しずつ応用へとステップアップしていきましょう。
Kotlinの書き方に慣れることで、コードを書く楽しさや効率の良さを実感できるようになります。繰り返し処理をうまく活用して、読みやすく・分かりやすく・バグの少ないコードを目指しましょう。
生徒
「KotlinのforEachやmap、filterって最初は難しそうに感じたけど、意外と簡単で便利ですね!」
先生
「そうですね。特に拡張関数を組み合わせると、リストの絞り込みや加工がすごくスマートになりますよね。」
生徒
「これまでfor文で同じような処理を何行も書いていたのがウソみたいです…もっと早く知っていればよかったです!」
先生
「大丈夫、気づいた今がベストタイミングです。拡張関数はKotlinらしい機能なので、これからもどんどん活用していきましょう!」
生徒
「次はカスタム拡張関数も挑戦してみたいです!」
先生
「いいですね。そうやって自分だけの便利な関数を作れるようになれば、Kotlinの楽しさがさらに広がりますよ。」