Skip to Content

Set trong Kotlin

🎯 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

Set là tập hợp không có thứ tự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

// Immutable Set val set = setOf(1, 2, 3) val emptySet = emptySet<Int>() // Mutable Set val mutableSet = mutableSetOf(1, 2, 3) val hashSet = hashSetOf(1, 2, 3) // HashSet val linkedSet = linkedSetOf(1, 2, 3) // Giữ thứ tự insertion val sortedSet = sortedSetOf(3, 1, 2) // TreeSet, [1, 2, 3]

🔄 Operations

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êm set += 5 // {1, 2, 3, 4, 5} set.remove(1) // {2, 3, 4, 5} set -= 2 // {3, 4, 5}

Kiểm tra membership

val set = setOf("Apple", "Banana", "Orange") println("Apple" in set) // true println(set.contains("Mango")) // false

🎯 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

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

  • 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

Last updated on