Swift Academy · レッスン

集合 — 要素の所属確認と演算

Swift Setを使って一意な要素を扱い、高速な所属確認、集合演算(union/intersection/subtracting/symmetricDifference)、関係(subset/superset/disjoint)を学びます。

レッスン 2/38 ステップ

「集合 — 要素の所属確認と演算」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。

Setを使う理由

目標: 重複のない順序なしの値を扱い、高速に存在確認できるSetを使いこなします。集合演算と関係を使ってデータを考察する方法も学びます。

作成とcontains

Setを作成し、要素を追加・削除してcontainsで確認します。重複は無視されます。

var fruits: Set<String> = ["apple", "banana"]
fruits.insert("banana")      // no duplicate added
fruits.insert("cherry")
fruits.remove("apple")
print("has banana?", fruits.contains("banana"))

集合演算

union、intersection、subtracting、symmetricDifferenceを使用します。

let evens: Set<Int> = [2,4,6,8]
let odds: Set<Int>  = [1,3,5,7]
print("union", evens.union(odds).sorted())
print("intersect", evens.intersection([2,3,4,5]).sorted())
print("subtract", evens.subtracting([2,8]).sorted())
print("symDiff", evens.symmetricDifference([4,10]).sorted())

関係

関係を確認するには、isSubset、isSuperset、isDisjointを使用します。

let a: Set<Int> = [1,2]
let b: Set<Int> = [1,2,3,4]
print("a ⊆ b?", a.isSubset(of: b))
print("b ⊇ a?", b.isSuperset(of: a))
print("disjoint?", a.isDisjoint(with: [3,4]))

反復とソート

Setには順序がありません。安定した順序(UIへの出力など)が必要な場合はソートします。

let colors: Set<String> = ["red", "blue", "green"]
// Sets are unordered; sort for deterministic output
for c in colors.sorted() { print(c) }

ヒントとパフォーマンス

ヒント:

  • 存在確認にはSetを優先します(多くの場合O(1)です)。
  • 要素はHashableである必要があります(String、Int、多くのEnumはそのまま使用できます)。
  • 順序が重要な場合はArrayに変換するか、sorted()を使用します。

対称差

確認: どちらか一方のSetに含まれ、両方には含まれない要素を返すメソッドはどれですか?

まとめ

まとめ: Setは重複のない要素を格納し、存在確認に適しています。集合演算(union/intersection/subtracting/symmetricDifference)と関係(subset/superset/disjoint)を練習しましょう。

無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
122
レッスン
409

よくある質問

「集合 — 要素の所属確認と演算」レッスンは無料ですか?

はい。「集合 — 要素の所属確認と演算」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。

「集合 — 要素の所属確認と演算」で何を学びますか?

Swift Setを使って一意な要素を扱い、高速な所属確認、集合演算(union/intersection/subtracting/symmetricDifference)、関係(subset/superset/disjoint)を学びます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「集合 — 要素の所属確認と演算」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 配列、辞書、集合
  2. 集合 — 要素の所属確認と演算
  3. 反復パターンと可変性
← Swift Academyに戻る