Bird
Raised Fist0
Swiftprogramming~5 mins

Set algebra (union, intersection, difference) in Swift

Choose your learning style10 modes available
Introduction

Set algebra helps you combine or compare groups of unique items easily. It lets you find all items together, only common items, or items that are different.

You want to combine two lists of unique names without duplicates.
You need to find common friends between two people.
You want to see what items are missing from one list compared to another.
You are filtering data to find overlaps or differences.
You want to quickly check if two groups share any elements.
Syntax
Swift
let unionSet = setA.union(setB)
let intersectionSet = setA.intersection(setB)
let differenceSet = setA.subtracting(setB)

Sets in Swift hold unique values with no order.

union() adds all unique elements from both sets.

Examples
This combines all unique numbers from both sets.
Swift
let setA: Set<Int> = [1, 2, 3]
let setB: Set<Int> = [3, 4, 5]
let unionSet = setA.union(setB)
print(unionSet)
This finds numbers present in both sets.
Swift
let setA: Set<Int> = [1, 2, 3]
let setB: Set<Int> = [3, 4, 5]
let intersectionSet = setA.intersection(setB)
print(intersectionSet)
This finds numbers in setA but not in setB.
Swift
let setA: Set<Int> = [1, 2, 3]
let setB: Set<Int> = [3, 4, 5]
let differenceSet = setA.subtracting(setB)
print(differenceSet)
Sample Program

This program shows how to get all unique fruits from both sets (union), fruits common to both (intersection), and fruits only in the first set (difference). We sort the sets before printing to see the items in order.

Swift
import Foundation

let setA: Set<String> = ["apple", "banana", "cherry"]
let setB: Set<String> = ["banana", "dragonfruit", "apple"]

let unionSet = setA.union(setB)
let intersectionSet = setA.intersection(setB)
let differenceSet = setA.subtracting(setB)

print("Union:", unionSet.sorted())
print("Intersection:", intersectionSet.sorted())
print("Difference:", differenceSet.sorted())
OutputSuccess
Important Notes

Sets do not keep order, so use sorted() to print in order.

union() combines all unique elements from both sets.

intersection() finds only elements present in both sets.

subtracting() finds elements in the first set not in the second.

Summary

Use union to combine all unique items from two sets.

Use intersection to find common items between sets.

Use difference (subtracting) to find items in one set but not the other.

Practice

(1/5)
1. What does the union operation do when applied to two Swift sets?
easy
A. Combines all unique elements from both sets into one set.
B. Finds elements that are only in the first set.
C. Finds elements common to both sets.
D. Removes all elements from both sets.

Solution

  1. Step 1: Understand the union operation

    The union of two sets combines all unique elements from both sets without duplicates.
  2. Step 2: Compare with other set operations

    Intersection finds common elements, difference finds unique elements in one set, so union is the only one combining all unique elements.
  3. Final Answer:

    Combines all unique elements from both sets into one set. -> Option A
  4. Quick Check:

    union = all unique elements combined [OK]
Hint: Union means all unique items from both sets combined [OK]
Common Mistakes:
  • Confusing union with intersection
  • Thinking union removes elements
  • Mixing union with difference
2. Which of the following is the correct Swift syntax to find the intersection of two sets a and b?
easy
A. let result = a + b
B. let result = a.intersection(b)
C. let result = a.union(b)
D. let result = a - b

Solution

  1. Step 1: Recall Swift set intersection syntax

    In Swift, the method to find common elements is intersection(), called as a.intersection(b).
  2. Step 2: Check other options

    a + b is not valid syntax, a.union(b) finds all unique elements, and a - b finds difference, so only a.intersection(b) is correct.
  3. Final Answer:

    let result = a.intersection(b) -> Option B
  4. Quick Check:

    intersection uses .intersection() method [OK]
Hint: Use .intersection() method to find common elements [OK]
Common Mistakes:
  • Using + instead of .intersection()
  • Confusing union and intersection methods
  • Using subtraction for intersection
3. What is the output of the following Swift code?
let setA: Set<Int> = [1, 2, 3, 4]
let setB: Set<Int> = [3, 4, 5, 6]
let result = setA.subtracting(setB)
print(result.sorted())
medium
A. [5, 6]
B. [3, 4]
C. [1, 2]
D. [1, 2, 3, 4, 5, 6]

Solution

  1. Step 1: Understand subtracting operation

    setA.subtracting(setB) returns elements in setA that are NOT in setB. Here, setA is [1,2,3,4], setB is [3,4,5,6].
  2. Step 2: Calculate difference

    Elements 3 and 4 are in both sets, so they are removed. Remaining elements in setA are 1 and 2.
  3. Final Answer:

    [1, 2] -> Option C
  4. Quick Check:

    subtracting = elements only in first set [OK]
Hint: Subtracting removes elements found in second set from first [OK]
Common Mistakes:
  • Confusing subtracting with intersection
  • Expecting union instead of difference
  • Not sorting output before printing
4. The following Swift code is intended to find the union of two sets setX and setY. What is the error?
let setX: Set<String> = ["apple", "banana"]
let setY: Set<String> = ["banana", "cherry"]
let combined = setX.union setY
print(combined)
medium
A. union cannot be used with string sets.
B. Sets must be arrays to use union.
C. The print statement is incorrect.
D. Missing parentheses after union method call.

Solution

  1. Step 1: Check method call syntax

    In Swift, methods require parentheses even if they take parameters. The code uses setX.union setY without parentheses.
  2. Step 2: Correct syntax for union

    The correct call is setX.union(setY). Other options are incorrect because union works on sets of strings and print is valid.
  3. Final Answer:

    Missing parentheses after union method call. -> Option D
  4. Quick Check:

    Method calls need parentheses [OK]
Hint: Always use parentheses when calling methods [OK]
Common Mistakes:
  • Omitting parentheses on method calls
  • Thinking union only works on numbers
  • Misunderstanding print syntax
5. Given two sets of integers:
let set1: Set<Int> = [2, 4, 6, 8, 10]
let set2: Set<Int> = [1, 2, 3, 4, 5]
Write Swift code to find elements that are in either set but NOT in both (symmetric difference). What is the correct way to do this?
hard
A. All of the above
B. let result = set1.symmetricDifference(set2)
C. let result = set1.subtracting(set2).union(set2.subtracting(set1))
D. let result = set1.union(set2).subtracting(set1.intersection(set2))

Solution

  1. Step 1: Understand symmetric difference

    Symmetric difference means elements in either set but not in both.
  2. Step 2: Analyze each option

    let result = set1.symmetricDifference(set2) uses built-in symmetricDifference() method. let result = set1.union(set2).subtracting(set1.intersection(set2)) finds union then removes intersection, which equals symmetric difference. let result = set1.subtracting(set2).union(set2.subtracting(set1)) finds difference both ways then unions them, also symmetric difference.
  3. Step 3: Confirm all options produce same result

    All three approaches correctly compute symmetric difference.
  4. Final Answer:

    All of the above -> Option A
  5. Quick Check:

    Multiple ways to get symmetric difference [OK]
Hint: Symmetric difference = union minus intersection or use built-in method [OK]
Common Mistakes:
  • Using only union or intersection alone
  • Confusing difference with symmetric difference
  • Not combining differences both ways
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard