カテゴリ: Kotlin 更新日: 2026/01/21

Kotlinの拡張関数で繰り返し処理を効率化!初心者でもわかるforEachやmapの活用例

Kotlinの繰り返し処理を効率化する拡張関数活用例
Kotlinの繰り返し処理を効率化する拡張関数活用例

先生と生徒の会話形式で理解しよう

生徒

「Kotlinで同じような処理を何回も書くのが面倒なんです。もっと効率よく書けないんですか?」

先生

「実はKotlinには『拡張関数』という便利な機能があって、繰り返し処理を短く・きれいに書けるんですよ。」

生徒

「拡張関数ってなんですか?難しそうな名前ですけど…」

先生

「名前はちょっと難しそうに聞こえますが、使い方はとてもシンプルです。さっそく見ていきましょう。」

1. 繰り返し処理ってなに?

1. 繰り返し処理ってなに?
1. 繰り返し処理ってなに?

繰り返し処理とは、複数のデータに対して「1つずつ同じ処理を行うこと」です。たとえば、買い物リストの品名を順番に表示したり、数値を順に計算したりするような場面が該当します。こうした処理は日常の作業にも近いため、プログラミングを学ぶうえで最初に覚えておきたい基礎になります。

Kotlinでは従来のfor文を使う方法に加えて、forEachmapといった便利な拡張関数を利用することで、より短く、見た目もすっきりしたコードで繰り返し処理を書くことができます。特に初心者のうちは、書く量が少ないほど理解もしやすくなるため、拡張関数は非常に役立つ仕組みです。


fun main() {
    val items = listOf("りんご", "みかん", "バナナ")

    for (item in items) {
        println(item)
    }
}

りんご
みかん
バナナ

このような単純な処理でも、別の書き方を知っておくと後の理解がスムーズになります。ここから先では、Kotlinならではの書き方を学びながら、繰り返し処理をもっと効率よく書く方法を見ていきましょう。

2. 拡張関数とは?初心者にもわかりやすく

2. 拡張関数とは?初心者にもわかりやすく
2. 拡張関数とは?初心者にもわかりやすく

拡張関数とは、もともとあるクラス(例:リスト)に対して、自分で「あとから便利な機能を追加できる」Kotlinならではの仕組みです。難しく聞こえるかもしれませんが、日常で使う道具に“アタッチメントを付けて機能を増やす”ようなイメージを持つと理解しやすくなります。

たとえば、listOf()で作ったリストには、最初からforEachmapなどの便利な関数が備わっています。これらはリストに拡張された関数であり、開発者が自分で新しい機能を後付けできる柔軟さがKotlinの魅力です。


fun main() {
    val fruits = listOf("りんご", "みかん", "ぶどう")

    // 拡張関数 forEach を使って1つずつ表示
    fruits.forEach { fruit ->
        println("フルーツ:$fruit")
    }
}

フルーツ:りんご
フルーツ:みかん
フルーツ:ぶどう

このように、拡張関数を使うことで、複数のデータを扱う処理がとても簡単になります。機能を“後から足せる”という考え方を知っておくと、今後さらに便利な使い方を学ぶときにも理解が深まりやすくなります。

3. forEachで繰り返し処理をシンプルに

3. forEachで繰り返し処理をシンプルに
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で書けないか考える習慣をつけると、コードが自然と読みやすくまとまっていきます。

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

4. mapを使って新しいリストを作る

4. mapを使って新しいリストを作る
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 }の部分では、リストに入っている123をそれぞれ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で条件に合うデータだけを抽出

5. filterで条件に合うデータだけを抽出
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. 拡張関数の組み合わせで最強に

6. 拡張関数の組み合わせで最強に
6. 拡張関数の組み合わせで最強に

実はmapfilterは、組み合わせて使うことができます。


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. 拡張関数で繰り返し処理を効率化するメリット

7. 拡張関数で繰り返し処理を効率化するメリット
7. 拡張関数で繰り返し処理を効率化するメリット
  • コードが短くて見やすい
  • 複雑な処理も1行で書ける
  • 組み合わせることで、処理の流れが直感的になる

特に初心者のうちは、for文を何行も書いて混乱しがちです。拡張関数を使えば、「何をしたいか」がコードを読むだけで伝わりやすくなります。

8. Kotlinの拡張関数は日常にも役立つ

8. Kotlinの拡張関数は日常にも役立つ
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の拡張関数とは何ですか?初心者でも簡単に使えるのですか?

拡張関数とは、既存のクラスにあとから便利な機能を追加できるKotlinの仕組みです。たとえばリストに対してforEachやmapを呼び出せるのは、拡張関数のおかげです。初心者でもシンプルに使えます。

Kotlinで繰り返し処理を効率化するにはどうすればいいですか?

繰り返し処理を効率化するには、Kotlinの拡張関数であるforEachやmap、filterを活用するのが効果的です。コードが短く読みやすくなります。
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語の短絡評価(ショートサーキット)を使った条件式の工夫をやさしく解説!初心者でも理解できる基本知識
New2
Go言語
Go言語の構造体の初期化パターンとコンストラクタ的関数の書き方を徹底解説!初心者でもわかる基本と実用例
New3
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New4
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Kotlin
Kotlin DSLとGroovy DSLの違いをやさしく解説!初心者でもわかるGradleスクリプトの使い分け
No.8
Java&Spring記事人気No8
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク