カテゴリ: Swift 更新日: 2026/01/09

Swiftのコレクション検索テクニックを完全解説!初心者でもわかるArray・Dictionary・Setの探し方

Swift コレクションの検索テクニック|first(where:)・contains・index
Swift コレクションの検索テクニック|first(where:)・contains・index

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

生徒

「Swiftでリストや辞書の中から特定の値を探す方法ってありますか?」

先生

「はい、SwiftではArray(配列)やDictionary(辞書)、Set(集合)といったコレクション型で、特定の要素を検索する便利な方法がいくつか用意されています。」

生徒

「たとえば、"りんご"っていう文字があるかどうか調べたりできますか?」

先生

「もちろんできますよ!今日はそのやり方を具体的に見ていきましょう。」

1. Swiftのコレクション型とは?

1. Swiftのコレクション型とは?
1. Swiftのコレクション型とは?

Swiftには、複数のデータをまとめて扱うための「コレクション型」があります。代表的なものには、以下の3つがあります。

  • Array(配列):順番付きで同じ型のデータを格納できる。
  • Dictionary(辞書):キーと値のペアでデータを管理できる。
  • Set(集合):重複しないデータを集めたもの。順番は保証されない。

これらのコレクションからデータを検索するために、first(where:)containsfirstIndex(of:)といった検索テクニックが使われます。

2. Arrayで値を探す|first(where:)・contains・firstIndex(of:)

2. Arrayで値を探す|first(where:)・contains・firstIndex(of:)
2. Arrayで値を探す|first(where:)・contains・firstIndex(of:)

まずは、Array(配列)での検索方法を見ていきましょう。

2-1. 条件に合う最初の要素を探す:first(where:)

first(where:)は、特定の条件を満たす最初の要素を見つけてくれます。


let fruits = ["りんご", "バナナ", "みかん", "ぶどう"]

if let result = fruits.first(where: { $0.hasPrefix("み") }) {
    print("見つかった果物:\(result)")
}

上記の例では、「"み"で始まる果物」を探しています。見つかった場合はその文字列が表示されます。

2-2. 含まれているか確認する:contains

containsは、配列に特定の値が存在するかどうかをtrueまたはfalseで返します。


let fruits = ["りんご", "バナナ", "みかん", "ぶどう"]

if fruits.contains("バナナ") {
    print("バナナはリストにあります")
}

とてもシンプルに使えるのが魅力です。

2-3. 値の位置(インデックス)を調べる:firstIndex(of:)

firstIndex(of:)は、配列の中で指定した要素が最初に現れる位置(インデックス)を返します。


let fruits = ["りんご", "バナナ", "みかん", "ぶどう"]

if let index = fruits.firstIndex(of: "みかん") {
    print("みかんは\(index)番目にあります")
}

位置を知りたいときに便利です。

3. Dictionaryで値やキーを探す

3. Dictionaryで値やキーを探す
3. Dictionaryで値やキーを探す

Dictionaryは、キーのセットでデータを管理するコレクションです。検索方法も少し違います。

3-1. キーが存在するか調べる:keys.contains


let prices = ["りんご": 100, "バナナ": 150, "みかん": 120]

if prices.keys.contains("バナナ") {
    print("バナナの価格は設定されています")
}

3-2. 値が含まれているか確認する:values.contains


let prices = ["りんご": 100, "バナナ": 150, "みかん": 120]

if prices.values.contains(150) {
    print("150円の商品があります")
}

keysvaluesを使えば、それぞれキー・値に対して検索できます。

4. Setで値を探す|containsがメイン

4. Setで値を探す|containsがメイン
4. Setで値を探す|containsがメイン

Setは重複しない値を管理するコレクションです。検索方法はシンプルで、containsを使うのが基本です。


let uniqueFruits: Set = ["りんご", "バナナ", "ぶどう"]

if uniqueFruits.contains("ぶどう") {
    print("ぶどうはセットに含まれています")
}

Setは検索が高速なので、大量のデータを扱う場面でよく使われます。

5. コレクション検索の違いを一覧で比較しよう

5. コレクション検索の違いを一覧で比較しよう
5. コレクション検索の違いを一覧で比較しよう

それぞれの検索方法を用途別に表で比較してみましょう。

検索方法 使えるコレクション 用途
first(where:) Array 条件に合う最初の要素を探す
contains Array / Set / Dictionary 値やキーが存在するか確認
firstIndex(of:) Array 値の位置(インデックス)を調べる
keys.contains Dictionary 特定のキーがあるか確認
values.contains Dictionary 特定の値があるか確認

6. 初心者がつまずきやすいポイント

6. 初心者がつまずきやすいポイント
6. 初心者がつまずきやすいポイント

Swiftのコレクション検索でよくあるつまずきポイントも押さえておきましょう。

  • nil(ニル)とは?
    検索結果が見つからないときはnilが返ってきます。これは「何もない」という意味の特別な値です。
  • Optional型に注意
    first(where:)firstIndex(of:)の戻り値は「Optional(オプショナル)」型になります。中身を取り出すにはif letを使って確認しましょう。
  • Setは順番がない
    Setには要素の順番がありません。順番に依存する処理には向いていません。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

Swiftのコレクション検索を総合的に振り返る

今回の記事では、Swiftにおけるコレクション検索の基本から実践的な使い分けまでを丁寧に確認してきました。Array、Dictionary、Setという三つの主要なコレクション型は、Swiftでのアプリ開発や業務ロジックの実装において欠かせない存在です。それぞれの特徴を理解したうえで、目的に応じた検索メソッドを選ぶことが、読みやすく安全なコードを書くための第一歩となります。

Arrayでは、順番を持つデータ構造という特性を活かし、first(where:)で条件に合う最初の要素を探したり、containsで値の存在を確認したり、firstIndex(of:)で位置情報を取得したりできました。特にfirst(where:)は、条件式を柔軟に書けるため、文字列検索や数値条件の判定など幅広い場面で活躍します。Optionalが返ってくる点を理解し、if letで安全に扱うことが重要です。

DictionaryとSetの検索の考え方

Dictionaryでは、キーと値が明確に分かれているため、検索対象がどちらなのかを意識する必要がありました。keys.containsを使えば特定のキーが存在するか確認でき、values.containsを使えば特定の値が含まれているかを調べられます。これは、設定情報やマスタデータ、価格表などを扱う場面で非常に実用的です。キーから直接値を取得する方法と組み合わせることで、無駄な処理を減らすことにもつながります。

Setについては、重複しないデータを高速に検索できる点が大きな強みでした。containsを使ったシンプルな検索は、ユーザー権限の判定やフラグ管理、大量データの存在チェックなどで効果を発揮します。ただし、順番が存在しないため、表示順やインデックスを必要とする処理には向かない点も押さえておく必要があります。

検索処理を意識したサンプルプログラム


let fruitsArray = ["りんご", "バナナ", "みかん", "ぶどう"]
let fruitsSet: Set = ["りんご", "バナナ", "ぶどう"]
let priceDictionary = ["りんご": 100, "バナナ": 150, "みかん": 120]

// Array検索
if let fruit = fruitsArray.first(where: { $0.contains("ん") }) {
    print("条件に合う果物:\(fruit)")
}

// Set検索
if fruitsSet.contains("ぶどう") {
    print("ぶどうはセットに含まれています")
}

// Dictionary検索
if priceDictionary.keys.contains("みかん") {
    print("みかんの価格情報があります")
}

このように、コレクションの種類ごとに適切な検索方法を使い分けることで、処理の意図が明確になり、後からコードを読む人にも理解しやすい実装になります。Swiftの標準ライブラリは非常に表現力が高いため、無理に複雑な書き方をせず、用意されているメソッドを素直に使うことが大切です。

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

生徒

SwiftのArrayやDictionary、Setって、それぞれ検索の考え方が違うんですね。前は何となく使っていましたが、役割がはっきり分かってきました。

先生

それはとても良い気付きですね。コレクション型の特性を理解すると、検索処理だけでなく設計そのものが上達していきますよ。

生徒

first(where:)やcontainsも、使い分ける理由が分かるとコードを書くのが楽しくなりました。Optionalの扱いも前より怖くなくなりました。

先生

Optionalを正しく扱えるようになると、Swiftらしい安全なコードが書けるようになります。検索結果がnilになる可能性を常に意識することが大切です。

生徒

Setの高速な検索も便利そうですね。データ量が多い場面では積極的に使ってみたいです。

先生

その判断ができるようになると、実務レベルのSwift開発に一歩近づきます。今回学んだコレクション検索の知識を、ぜひ実際のアプリやサンプル制作で活かしてみてください。

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

関連記事:
カテゴリの一覧へ
新着記事
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の演算子一覧と使い方!算術・比較・論理演算子の基本を解説