カテゴリ: Kotlin 更新日: 2026/03/17

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で書けないか考える習慣をつけると、コードが自然と読みやすくまとまっていきます。

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は、リストの中から「この条件に合うものだけ欲しい」というときに使える便利な拡張関数です。たとえば、偶数だけ、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]のうち、偶数である24だけが新しいリストとして返されます。元のリストは変わらないので、とても安全に扱えるのもポイントです。

さらに、itを使って短く書くこともできます。


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

    val longWords = words.filter {
        it.length >= 3   // 3文字以上だけ残す
    }

    println(longWords)
}

[りんご, バナナ, みかん, ぶどう]

このように、filterは「条件に応じたデータだけ選びたい」場面で非常に役立ちます。コードを読んだ人にも意図が伝わりやすく、プログラミング初心者でも安心して使える拡張関数です。

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

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

※ Amazon広告リンク

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Kotlinの拡張関数とは何ですか?初心者でも簡単に使えるのですか?

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

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

繰り返し処理を効率化するには、Kotlinの拡張関数であるforEachやmap、filterを活用するのが効果的です。コードが短く読みやすくなります。
関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのログ出力方法を完全ガイド!LogcatとTimberでトラブルシューティング