🎯 Set
🎯 Mục tiêu: Hiểu Set - collection không cho phép phần tử trùng lặp, hữu ích cho các thao tác tập hợp.
💡 Khái niệm
Phần tiêu đề “💡 Khái niệm”Set là tập hợp không có thứ tự và không có phần tử trùng lặp.
val numbers = setOf(1, 2, 3, 2, 1)println(numbers) // [1, 2, 3] - chỉ giữ unique values📝 Tạo Set
Phần tiêu đề “📝 Tạo Set”// Immutable Setval set = setOf(1, 2, 3)val emptySet = emptySet<Int>()
// Mutable Setval mutableSet = mutableSetOf(1, 2, 3)val hashSet = hashSetOf(1, 2, 3) // HashSetval linkedSet = linkedSetOf(1, 2, 3) // Giữ thứ tự insertionval sortedSet = sortedSetOf(3, 1, 2) // TreeSet, [1, 2, 3]🔄 Operations
Phần tiêu đề “🔄 Operations”Add & Remove
Phần tiêu đề “Add & Remove”val set = mutableSetOf(1, 2, 3)
set.add(4) // {1, 2, 3, 4}set.add(2) // {1, 2, 3, 4} - 2 đã có, không thêmset += 5 // {1, 2, 3, 4, 5}
set.remove(1) // {2, 3, 4, 5}set -= 2 // {3, 4, 5}Kiểm tra membership
Phần tiêu đề “Kiểm tra membership”val set = setOf("Apple", "Banana", "Orange")
println("Apple" in set) // trueprintln(set.contains("Mango")) // false🎯 Set Operations (Toán tập hợp)
Phần tiêu đề “🎯 Set Operations (Toán tập hợp)”val a = setOf(1, 2, 3, 4)val b = setOf(3, 4, 5, 6)
// Union (Hợp)println(a union b) // [1, 2, 3, 4, 5, 6]println(a + b) // [1, 2, 3, 4, 5, 6]
// Intersection (Giao)println(a intersect b) // [3, 4]
// Difference (Hiệu)println(a subtract b) // [1, 2]println(a - b) // [1, 2]
// Symmetric Difference (Hiệu đối xứng)val symDiff = (a - b) + (b - a)println(symDiff) // [1, 2, 5, 6]🛠️ Thực hành
Phần tiêu đề “🛠️ Thực hành”Bài tập: Tìm skills chung của 2 ứng viên
fun main() { val candidate1Skills = setOf("Kotlin", "Java", "Android", "Git") val candidate2Skills = setOf("Kotlin", "Swift", "iOS", "Git")
// TODO: Tìm skills chung và skills khác biệt}Lời giải:
fun main() { val candidate1Skills = setOf("Kotlin", "Java", "Android", "Git") val candidate2Skills = setOf("Kotlin", "Swift", "iOS", "Git")
val commonSkills = candidate1Skills intersect candidate2Skills val allSkills = candidate1Skills union candidate2Skills val uniqueC1 = candidate1Skills - candidate2Skills val uniqueC2 = candidate2Skills - candidate1Skills
println("Common: $commonSkills") // [Kotlin, Git] println("All: $allSkills") // [Kotlin, Java, Android, Git, Swift, iOS] println("Only C1: $uniqueC1") // [Java, Android] println("Only C2: $uniqueC2") // [Swift, iOS]}✅ Checklist
Phần tiêu đề “✅ Checklist”- Hiểu Set không có phần tử trùng
- Sử dụng
setOf(),mutableSetOf() - Thực hiện union, intersect, subtract
Tiếp theo: Map