📖 Scenario: You are organizing a small community event. You have lists of people who signed up for different activities. You want to use sets to manage these lists and find who is attending which activities.
🎯 Goal: Build a Swift program that creates sets of attendees for two activities, finds who is attending both activities, and who is attending only one.
📋 What You'll Learn
Create two sets with exact names and values
Create a variable for the union of the two sets
Create a variable for the intersection of the two sets
Print the union and intersection sets exactly
💡 Why This Matters
🌍 Real World
Managing event attendees and their participation in different activities helps organizers avoid duplicates and understand overlaps.
💼 Career
Set operations are useful in data processing, filtering unique items, and comparing groups in software development.
Progress0 / 4 steps
1
Create two sets of attendees
Create a set called activityA with these exact names: "Alice", "Bob", "Charlie". Then create another set called activityB with these exact names: "Bob", "Diana", "Eve".
Swift
Hint
Use let to create sets with square brackets and commas between names.
2
Create a union set of all attendees
Create a variable called allAttendees that is the union of activityA and activityB.
Swift
Hint
Use the union method on activityA with activityB as argument.
3
Create an intersection set of attendees in both activities
Create a variable called bothActivities that is the intersection of activityA and activityB.
Swift
Hint
Use the intersection method on activityA with activityB as argument.
4
Print the union and intersection sets
Print the variables allAttendees and bothActivities exactly using two separate print statements.
Swift
Hint
Use print(allAttendees) and print(bothActivities) to show the sets.
Practice
(1/5)
1. What is true about a Set in Swift?
easy
A. It can only store numbers, not strings.
B. It stores duplicate values in the order they were added.
C. It stores unique values without any specific order.
D. It always keeps elements sorted alphabetically.
Solution
Step 1: Understand Set properties
A Set in Swift stores unique values and does not keep any order.
Step 2: Compare options with Set behavior
It stores unique values without any specific order. matches the unique and unordered nature of Sets. Others describe arrays or sorted collections.
Final Answer:
It stores unique values without any specific order. -> Option C
Quick Check:
Set = unique + unordered [OK]
Hint: Remember: Sets never keep duplicates or order [OK]
Common Mistakes:
Thinking Sets keep order like arrays
Assuming Sets allow duplicates
Believing Sets only store numbers
2. Which of the following is the correct way to create a Set of integers in Swift?
easy
A. let numbers = {1, 2, 3, 4} as Set<Int>
B. let numbers: Set<Int> = [1, 2, 3, 4]
C. let numbers = Set(1, 2, 3, 4)
D. let numbers = [1, 2, 3, 4] as Set
Solution
Step 1: Recall Set creation syntax
In Swift, a Set can be created by specifying type and using square brackets with values.
Step 2: Check each option's syntax
let numbers: Set<Int> = [1, 2, 3, 4] uses correct syntax: Set<Int> = [1, 2, 3, 4]. Others have syntax errors or wrong casting.
Final Answer:
let numbers: Set<Int> = [1, 2, 3, 4] -> Option B
Quick Check:
Set creation = type + brackets [OK]
Hint: Use Set<Type> with brackets for values [OK]
Common Mistakes:
Using parentheses instead of brackets
Trying to cast arrays directly to Set without syntax
Missing type declaration when needed
3. What will be the output of this Swift code?
let setA: Set<Int> = [1, 2, 3, 4] let setB: Set<Int> = [3, 4, 5, 6] let result = setA.intersection(setB) print(result.sorted())
medium
A. [3, 4]
B. [1, 2]
C. [5, 6]
D. [1, 2, 3, 4, 5, 6]
Solution
Step 1: Understand intersection operation
Intersection returns elements common to both sets. Here, common elements are 3 and 4.
Step 2: Check printed output
Result is converted to a sorted array, so output is [3, 4].
Final Answer:
[3, 4] -> Option A
Quick Check:
Intersection = common elements [OK]
Hint: Intersection = only items in both sets [OK]
Common Mistakes:
Confusing intersection with union
Forgetting to sort before printing
Expecting all elements combined
4. Identify the error in this Swift code snippet:
var fruits: Set<String> = ["apple", "banana", "orange"] fruits.append("grape")
medium
A. The brackets [] cannot be used to create a Set.
B. You cannot add strings to a Set of strings.
C. The Set must be declared as a constant, not variable.
D. Sets do not have an append method.
Solution
Step 1: Check Set modification methods
Sets use insert() to add elements, not append().
Step 2: Analyze the code error
Calling append() on a Set causes a compile error because it is not defined for Set.
Final Answer:
Sets do not have an append method. -> Option D
Quick Check:
Use insert() to add to Set [OK]
Hint: Use insert(), not append(), to add Set items [OK]
Common Mistakes:
Using append() instead of insert()
Thinking Sets are immutable by default
Confusing array and Set methods
5. Given two sets:
let setX: Set<Int> = [1, 2, 3, 4, 5] let setY: Set<Int> = [4, 5, 6, 7]
Which Swift code correctly creates a new set containing elements in either setX or setY but not in both?
hard
A. let result = setX.symmetricDifference(setY)
B. let result = setX.union(setY)
C. let result = setX.intersection(setY)
D. let result = setX.subtracting(setY)
Solution
Step 1: Understand symmetricDifference
Symmetric difference returns elements in either set but not in both.
Step 2: Compare with other operations
Union combines all elements, intersection finds common, subtracting removes elements of second from first.
Final Answer:
let result = setX.symmetricDifference(setY) -> Option A
Quick Check:
Symmetric difference = exclusive elements [OK]
Hint: SymmetricDifference = items in one set only [OK]
Common Mistakes:
Using union instead of symmetricDifference
Confusing intersection with symmetricDifference
Using subtracting which is one-sided
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.