Kotlin Sets: From Basics to Advanced

Data handling is a fundamental aspect of any programming language. Kotlin is no different, offering a variety of collection types to suit various data management needs. This blog post focuses on Kotlin Sets, providing a detailed guide from the basics to more advanced usage.

“The function of good software is to make the complex appear to be simple.” – Grady Booch

Kotlin Sets: An Introduction

A Set in Kotlin is an unordered collection of elements. It does not contain duplicate elements. Here’s a simple example of a Set:

val names = setOf("Alice", "Bob", "Alice")
println(names) // ["Alice", "Bob"]

In this example, we create a Set of names. Even though we added “Alice” twice, it appears only once in the Set because Sets don’t allow duplicate elements.

Mutable Sets

Similar to Lists, Sets in Kotlin also come in two flavors – immutable (setOf) and mutable (mutableSetOf). Mutable Sets allow adding and removing elements.

val names = mutableSetOf("Alice", "Bob")
println(names) // ["Alice", "Bob", "Charlie"]

In this example, we add a new element to our mutable Set.

Useful Set Operations

Kotlin provides several handy functions for working with Sets.


The contains function checks if an element is present in the Set.

val names = setOf("Alice", "Bob", "Charlie")
println(names.contains("Alice")) // true

In this example, we check if “Alice” is in our Set of names.


The union function returns a Set that contains all distinct elements from both Sets.

val set1 = setOf(1, 2, 3)
val set2 = setOf(3, 4, 5)
println(set1.union(set2)) // [1, 2, 3, 4, 5]

In this example, we perform a union of two Sets.

Advanced Set Operations

Let’s move on to some more advanced operations with Kotlin Sets.


The intersect function returns a Set that contains the elements that exist in both Sets.

val set1 = setOf(1, 2, 3)
val set2 = setOf(2, 3, 4)
println(set1.intersect(set2)) // [2, 3]

In this example, we find the intersection of two Sets.


The subtract function returns a Set that contains elements from the first Set that are not present in the second Set.

val set1 = setOf(1, 2, 3)
val set2 = setOf(2, 3, 4)
println(set1.subtract(set2)) // [1]

In this example, we subtract one Set from another.


Sets in Kotlin are an important tool for handling collections of data. By understanding how to use Sets effectively, you can simplify your code and make it more readable. As Grady Booch said, good software should make complex things appear simple. By mastering Sets in Kotlin, you’ll be one step closer to creating great software. So keep experimenting, keep learning, and continue your journey towards Kotlin mastery!