📖 Scenario: You are organizing two groups of friends who like different sports. You want to find out who likes either sport, who likes both, and who likes only one of the sports.
🎯 Goal: Build a Swift program that uses sets to find the union, intersection, and difference of two groups of friends.
📋 What You'll Learn
Create two sets of strings representing friends who like basketball and soccer.
Create a variable to hold the union of both sets.
Create a variable to hold the intersection of both sets.
Create a variable to hold the difference of basketball friends who do not like soccer.
Print the results clearly.
💡 Why This Matters
🌍 Real World
Sets help manage groups of items or people, like customers, tags, or preferences, without duplicates.
💼 Career
Understanding set operations is useful in data processing, filtering, and combining information efficiently in software development.
Progress0 / 4 steps
1
Create two sets of friends
Create two sets called basketballFans and soccerFans with these exact values: basketballFans contains "Alice", "Bob", "Charlie" and soccerFans contains "Bob", "Diana", "Eve".
Swift
Hint
Use let to create sets with square brackets and commas separating names.
2
Create variables for union, intersection, and difference
Create three variables called allFans, bothFans, and onlyBasketballFans. Set allFans to the union of basketballFans and soccerFans. Set bothFans to the intersection of basketballFans and soccerFans. Set onlyBasketballFans to the difference of basketballFans minus soccerFans.
Swift
Hint
Use .union(), .intersection(), and .subtracting() methods on sets.
3
Print the results
Write three print statements to display the contents of allFans, bothFans, and onlyBasketballFans with clear labels.
Swift
Hint
Use print with string interpolation and .sorted() to show sets in order.
4
Run the program and see the output
Run the program to display the sets of fans with their labels exactly as printed by the print statements.
Swift
Hint
Check the console output matches exactly the printed lines with sorted arrays.
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
Step 1: Understand the union operation
The union of two sets combines all unique elements from both sets without duplicates.
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.
Final Answer:
Combines all unique elements from both sets into one set. -> Option A
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
Step 1: Recall Swift set intersection syntax
In Swift, the method to find common elements is intersection(), called as a.intersection(b).
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.
Final Answer:
let result = a.intersection(b) -> Option B
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
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].
Step 2: Calculate difference
Elements 3 and 4 are in both sets, so they are removed. Remaining elements in setA are 1 and 2.
Final Answer:
[1, 2] -> Option C
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
Step 1: Check method call syntax
In Swift, methods require parentheses even if they take parameters. The code uses setX.union setY without parentheses.
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.
Final Answer:
Missing parentheses after union method call. -> Option D
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
Step 1: Understand symmetric difference
Symmetric difference means elements in either set but not in both.
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.
Step 3: Confirm all options produce same result
All three approaches correctly compute symmetric difference.
Final Answer:
All of the above -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.