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

Kotlinでコレクションを検索するfind()・first()の使い方を完全ガイド!初心者にもわかる例付き解説

Kotlinでコレクションを検索するfind()・first()の使い方
Kotlinでコレクションを検索するfind()・first()の使い方

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

生徒

「Kotlinでリストの中から特定の値を見つけたいときって、どうすればいいんですか?」

先生

「Kotlinでは、find()first()という関数を使うことで、コレクション(リストなど)の中から条件に合う要素を簡単に検索できますよ。」

生徒

「どっちを使えばいいのか迷いそうですね…使い方を詳しく教えてもらえますか?」

先生

「もちろんです!それでは、Kotlinでのfind()first()の使い方を一緒に見ていきましょう。」

1. Kotlinのfind()関数とは?

1. Kotlinのfind()関数とは?
1. Kotlinのfind()関数とは?

find()は、Kotlinの標準ライブラリに含まれている関数で、コレクションの中から最初に条件に一致した要素を見つけて返します。もし条件に合う要素がなければ、null(ヌル)を返します。

ヌル(null)とは、「何も入っていない状態」を表す特別な値で、空っぽという意味です。

たとえば、買い物リストの中から「りんご」があるか探すような感じです。以下の例を見てください。


fun main() {
    val fruits = listOf("バナナ", "りんご", "ぶどう", "みかん")
    val result = fruits.find { it == "りんご" }
    println(result)
}

りんご

このように、条件に合う「りんご」が見つかり、最初に一致した値が返されます。

2. find()で見つからないときの挙動

2. find()で見つからないときの挙動
2. find()で見つからないときの挙動

find()を使っても、条件に合う要素が見つからない場合はどうなるでしょうか?以下の例で確認してみましょう。


fun main() {
    val fruits = listOf("バナナ", "ぶどう", "みかん")
    val result = fruits.find { it == "りんご" }
    println(result)
}

null

このように、「りんご」が見つからない場合はnullが返ってきます。プログラムの中でnullかどうかを確認してから使うことが大切です。

3. Kotlinのfirst()関数とは?

3. Kotlinのfirst()関数とは?
3. Kotlinのfirst()関数とは?

first()find()と同じように、条件に合う最初の要素を返す関数です。ただし、大きな違いがあります。

first()は、条件に合う要素が見つからないとエラーになります。

以下に例を示します。


fun main() {
    val fruits = listOf("バナナ", "りんご", "ぶどう", "みかん")
    val result = fruits.first { it == "りんご" }
    println(result)
}

りんご

「りんご」が見つかるので問題なく動作しますが、次のように「りんご」が存在しない場合はどうなるでしょうか?


fun main() {
    val fruits = listOf("バナナ", "ぶどう", "みかん")
    val result = fruits.first { it == "りんご" }
    println(result)
}

Exception in thread "main" java.util.NoSuchElementException: No element matching predicate was found.

このように、条件に合う要素が存在しないとエラー(例外)が発生してしまいます。

4. find()とfirst()の違いと使い分け

4. find()とfirst()の違いと使い分け
4. find()とfirst()の違いと使い分け

ここまでで、Kotlinのfind()first()の違いが見えてきましたね。以下にポイントをまとめます:

  • find():見つからなければnullを返す
  • first():見つからなければエラーになる

そのため、安全に要素を探したいときはfind()を使い、必ず見つかることが前提であればfirst()を使いましょう。

5. 応用:find()とnullチェックの組み合わせ

5. 応用:find()とnullチェックの組み合わせ
5. 応用:find()とnullチェックの組み合わせ

find()nullが返る可能性があるため、実際に使うときは「条件に一致する要素が見つかったかどうか」をチェックするのが重要です。


fun main() {
    val names = listOf("さとし", "あかね", "たけし")
    val target = names.find { it.startsWith("ま") }

    if (target != null) {
        println("見つかりました: $target")
    } else {
        println("条件に合う名前はありませんでした")
    }
}

条件に合う名前はありませんでした

このように、安全に扱うためにはnullチェックを入れるのが基本です。

6. 数字の検索にも使える!

6. 数字の検索にも使える!
6. 数字の検索にも使える!

Kotlinのfind()first()は、文字だけでなく数字にも使えます。たとえば、リストの中から偶数を探す場合などです。


fun main() {
    val numbers = listOf(1, 3, 5, 8, 10)
    val even = numbers.find { it % 2 == 0 }
    println("偶数: $even")
}

偶数: 8

このように、数の条件にも柔軟に対応できるので、find()first()はとても便利な関数です。

まとめ

まとめ
まとめ

Kotlinでコレクションを安全かつ効率良く検索するための方法として、find()first()は非常に重要な位置を占めています。これらの検索関数は、リストやセットなど日常的に扱うデータ構造を自然な形で操作できるため、Kotlinを学び始めた初心者にとっても理解しやすく、実際のプログラムでも頻繁に使われる基本的な仕組みです。とくに、条件に一致する要素を簡潔な書き方で見つけられるという強みは、コードの見通しを良くし、複雑な処理を短くまとめる効果があります。さらに、find()では一致する要素がない場合にnullが返されるため、プログラムの挙動を想定しやすく、初心者でも扱いやすいというメリットがあります。一方で、first()は必ず要素が存在する前提で使うため、意図せぬ例外を避けるためには事前に存在を把握している場面で使用する必要があります。こうした違いを理解することで、Kotlinにおける安全性や例外処理の考え方を身につけられますし、アプリケーションの安定性にもつながります。

また、コレクションの検索は文字列や数字だけでなく、オブジェクトを扱う際にも応用できます。条件式を書くだけで自在に検索できるという利点は、Kotlinが持つラムダ式と相性が良く、より高度なフィルタリングや集計処理にも発展させることが可能です。検索結果がnullとなるケースに備えて条件分岐を行うことで、安全なプログラム設計を行えるという点も学べたはずです。とくにKotlinはnull安全を強く意識した言語のため、find()で返されるnullへの理解は今後必ず役に立ちます。また、first()に関しては、条件に一致する要素が存在しない場合に例外が発生するという挙動をしっかり覚えておく必要があります。これはプログラムがクラッシュする要因にもなるため、適切な用途で使用しなければなりません。用途の見極めこそがKotlinのコレクション活用の基本となり、データ操作をより意図通りに制御するポイントになります。

実際の開発現場では、コレクションの検索は膨大なデータの中から必要な情報を素早く取り出す場面で必須となります。例えばユーザー一覧から特定の名前を検索したり、設定値リストの中から条件に一致する項目を取り出したりといった処理が挙げられます。そのため、検索関数の仕組みと挙動を理解しておくことで、システム全体の動作を予測しやすくなり、バグの少ない安定したアプリケーションを構築する力が身につきます。今後さらにStream処理やfilter()などの関数と組み合わせていくことで、より柔軟で高度なデータ操作にも対応できるようになります。今回の知識を土台として発展的な処理へ進めるためにも、まずは基本となるfind()first()の違いと役割を確実に理解しておくことが大切です。検索結果が存在するかどうかを常に意識し、必要に応じてnullチェックや例外対策を取り入れることで、強固なアプリケーション設計につながります。以下には簡単な応用サンプルを載せておくので、理解の確認として参考にしてみてください。

find()とfirst()を使った応用サンプル


data class User(val name: String, val age: Int)

fun main() {
    val users = listOf(
        User("さとし", 20),
        User("あかね", 25),
        User("たけし", 30)
    )

    val foundUser = users.find { it.age > 22 }
    val firstUser = users.first { it.name.startsWith("た") }

    println("find結果: $foundUser")
    println("first結果: $firstUser")
}

find結果: User(name=あかね, age=25)
first結果: User(name=たけし, age=30)

このサンプルでは、find()を使って22歳以上のユーザーを検索し、first()では名前が特定の文字で始まるユーザーを検索しています。実際のデータ操作と同じように、条件を自由に記述できるため、とても柔軟に検索処理を行えることがわかります。コレクション操作の理解が深まるほど、アプリケーション全体の処理がスムーズになり、より読みやすく分かりやすい Kotlin コードを書けるようになります。

先生と生徒の振り返り会話

生徒

「今日の学習で、find()とfirst()の違いがはっきりわかってきました!条件に合う要素がないときの挙動がまったく違うんですね。」

先生

「その通りです。特にfind()はnullが返ってくるので、安全に扱える一方で、nullチェックを忘れると予期しない動作につながることがあります。」

生徒

「逆にfirst()は条件に合う要素が必ずある前提で使うんですね。例外が起きるって聞くと、使う場面を選ばないと危険ですね…。」

先生

「その理解で完璧です。どちらも特徴を捉えておけば、コレクション検索の使い分けが一気に楽になりますよ。慣れてくれば、状況に応じて自然に使い分けられるようになります。」

生徒

「次はfilter()とかも一緒に使ってみたいです!コレクション操作って奥深くて面白いですね。」

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

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

※ Amazon広告リンク

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

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

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

Kotlinでfindを使ったときに検索結果がnullになるのはどういう意味ですか?リスト検索で値が見つからない状況がよくわからないので詳しく知りたいです。

findが返すnullは、指定した条件に一致する要素がコレクションの中に存在しなかったことを示します。検索対象が文字列でも数字でも同じで、条件が一致しない限りnullが戻るため、必ずnullチェックを行うことが大切です。こうした動作はKotlinのnull安全の仕組みと深く関わり、初心者でも理解しやすい挙動になっています。
関連セミナーのご案内

【未経験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
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのログ出力方法を完全ガイド!LogcatとTimberでトラブルシューティング