Kotlinの拡張関数で繰り返し処理を効率化!初心者でもわかるforEachやmapの活用例
生徒
「Kotlinで同じような処理を何回も書くのが面倒なんです。もっと効率よく書けないんですか?」
先生
「実はKotlinには『拡張関数』という便利な機能があって、繰り返し処理を短く・きれいに書けるんですよ。」
生徒
「拡張関数ってなんですか?難しそうな名前ですけど…」
先生
「名前はちょっと難しそうに聞こえますが、使い方はとてもシンプルです。さっそく見ていきましょう。」
1. 繰り返し処理ってなに?
繰り返し処理とは、複数のデータに対して「1つずつ同じ処理を行うこと」です。たとえば、買い物リストの品名を順番に表示したり、数値を順に計算したりするような場面が該当します。こうした処理は日常の作業にも近いため、プログラミングを学ぶうえで最初に覚えておきたい基礎になります。
Kotlinでは従来のfor文を使う方法に加えて、forEachやmapといった便利な拡張関数を利用することで、より短く、見た目もすっきりしたコードで繰り返し処理を書くことができます。特に初心者のうちは、書く量が少ないほど理解もしやすくなるため、拡張関数は非常に役立つ仕組みです。
fun main() {
val items = listOf("りんご", "みかん", "バナナ")
for (item in items) {
println(item)
}
}
りんご
みかん
バナナ
このような単純な処理でも、別の書き方を知っておくと後の理解がスムーズになります。ここから先では、Kotlinならではの書き方を学びながら、繰り返し処理をもっと効率よく書く方法を見ていきましょう。
2. 拡張関数とは?初心者にもわかりやすく
拡張関数とは、もともとあるクラス(例:リスト)に対して、自分で「あとから便利な機能を追加できる」Kotlinならではの仕組みです。難しく聞こえるかもしれませんが、日常で使う道具に“アタッチメントを付けて機能を増やす”ようなイメージを持つと理解しやすくなります。
たとえば、listOf()で作ったリストには、最初からforEachやmapなどの便利な関数が備わっています。これらはリストに拡張された関数であり、開発者が自分で新しい機能を後付けできる柔軟さがKotlinの魅力です。
fun main() {
val fruits = listOf("りんご", "みかん", "ぶどう")
// 拡張関数 forEach を使って1つずつ表示
fruits.forEach { fruit ->
println("フルーツ:$fruit")
}
}
フルーツ:りんご
フルーツ:みかん
フルーツ:ぶどう
このように、拡張関数を使うことで、複数のデータを扱う処理がとても簡単になります。機能を“後から足せる”という考え方を知っておくと、今後さらに便利な使い方を学ぶときにも理解が深まりやすくなります。
3. forEachで繰り返し処理をシンプルに
forEachは、さきほど出てきたリストなどのコレクションに用意されている拡張関数のひとつで、「中身を1つずつ取り出して同じ処理をする」ときに使います。従来のfor文と同じことができますが、コード量が少なくなり見た目もすっきりするのが大きなメリットです。
まずは、名前のリストを順番に表示する、シンプルな例から見てみましょう。
fun main() {
val names = listOf("太郎", "花子", "次郎")
names.forEach { name ->
println("こんにちは、$name さん")
}
}
こんにちは、太郎 さん
こんにちは、花子 さん
こんにちは、次郎 さん
names.forEach { name -> ... }の{ }の中は「名前が1つずつ入ってくる場所」です。リストの先頭から順番に"太郎"、"花子"、"次郎"がnameに入り、そのたびにprintlnが実行されます。「リストを1人ずつ呼び出すイメージ」として考えると分かりやすいです。
変数名を省略してもっと短く書くこともできます。
fun main() {
val animals = listOf("犬", "猫", "鳥")
animals.forEach {
println("動物:$it")
}
}
動物:犬
動物:猫
動物:鳥
この書き方では、itという特別な名前が「今処理している1つ分のデータ」を表しています。for文のようにインデックスを書かなくてもよく、「このリストの中身を順番に表示したい」といった目的が素直に表現できます。Kotlinで繰り返し処理を書くときは、まずforEachで書けないか考える習慣をつけると、コードが自然と読みやすくまとまっていきます。
4. mapを使って新しいリストを作る
mapは、元のリストの要素を「1つずつ別の値に変換して、新しいリストを作る」ときに使う拡張関数です。もとのデータを壊さずに、「2倍にした数」「敬称を付けた名前」「単位を付けた文字列」など、見た目や意味を変えたリストを簡単に作れるのが特徴です。
まずは、数字を2倍にして新しいリストを作る、シンプルな例から見てみましょう。
fun main() {
val numbers = listOf(1, 2, 3)
val doubled = numbers.map { number ->
number * 2
}
println(doubled)
}
[2, 4, 6]
numbers.map { number -> number * 2 }の部分では、リストに入っている1、2、3をそれぞれ2倍して、[2, 4, 6]という新しいリストを作っています。もとのnumbersはそのまま残っていて、変換された結果だけがdoubledとして別に用意されるイメージです。
変数名を省略して、さらに短く書くこともできます。
fun main() {
val prices = listOf(100, 200, 300)
val withTax = prices.map {
(it * 1.1).toInt()
}
println(withTax)
}
[110, 220, 330]
ここではitが「今処理している1つ分の値」を表しており、税率を掛けた金額のリストをまとめて作成しています。もしmapを使わずに同じことをしようとすると、「空のリストを用意してfor文で1つずつ追加する」といったコードが必要になりますが、mapなら「このリストをこう変換したい」という意図を1行で表現できます。Kotlinで繰り返し処理を扱うときには、「新しいリストを作りたい場面ではmap」と覚えておくと、コードがぐっと書きやすくなります。
5. filterで条件に合うデータだけを抽出
filterは、リストの中から「この条件に合うものだけ欲しい」というときに使える便利な拡張関数です。たとえば、偶数だけ、100点以上だけ、3文字の名前だけ…といった“より分け作業”をとてもシンプルに書けます。普段の生活でも「必要なものだけ選ぶ」ことが多いように、プログラミングでもデータを絞り込みたい場面がよくあります。
まずは、数字のリストから偶数だけを取り出す、分かりやすい例を見てみましょう。
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { number ->
number % 2 == 0 // 偶数だけ取り出す条件
}
println(evenNumbers)
}
[2, 4]
filter { number -> number % 2 == 0 }の中に書いているのは「この条件に当てはまるものだけ残す」というルールです。リスト[1, 2, 3, 4, 5]のうち、偶数である2と4だけが新しいリストとして返されます。元のリストは変わらないので、とても安全に扱えるのもポイントです。
さらに、itを使って短く書くこともできます。
fun main() {
val words = listOf("りんご", "バナナ", "みかん", "ぶどう")
val longWords = words.filter {
it.length >= 3 // 3文字以上だけ残す
}
println(longWords)
}
[りんご, バナナ, みかん, ぶどう]
このように、filterは「条件に応じたデータだけ選びたい」場面で非常に役立ちます。コードを読んだ人にも意図が伝わりやすく、プログラミング初心者でも安心して使える拡張関数です。
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の楽しさがさらに広がりますよ。」
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
この記事を読んだ人からの質問
プログラミング初心者からのよくある疑問/質問を解決します
Kotlinの拡張関数とは何ですか?初心者でも簡単に使えるのですか?
拡張関数とは、既存のクラスにあとから便利な機能を追加できるKotlinの仕組みです。たとえばリストに対してforEachやmapを呼び出せるのは、拡張関数のおかげです。初心者でもシンプルに使えます。
Kotlinで繰り返し処理を効率化するにはどうすればいいですか?
繰り返し処理を効率化するには、Kotlinの拡張関数であるforEachやmap、filterを活用するのが効果的です。コードが短く読みやすくなります。
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験