カテゴリ: Swift 更新日: 2025/11/14

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には要素の順番がありません。順番に依存する処理には向いていません。
関連記事:
カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.3
Kotlin・Go・Swift記事の人気No3
Swift入門ガイド|基本構文と書き方をマスターしよう
No.4
Kotlin・Go・Swift記事の人気No4
Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう
No.5
Kotlin・Go・Swift記事の人気No5
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinのコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.8
Kotlin・Go・Swift記事の人気No8
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎