We can create an immutable set using the setOf keyword. The set element is inherited from the collection interface, which means that it is the immutable type collection that provides read-only functionality. Create a set and add some duplicate values in it:
val setItems = setOf(1,1,2,3,3,4,5,5)
Now, check the size of this collection. As mentioned earlier, sets don't support duplicate elements, so the size of the collection will be 5 instead of 8:
println("Set size ${setItems.size}")
Sets don't contain their own functions, but they do override all functions from the collection interface. We can check the presence of any element by using the contains function:
var element = 5
var result = setItems.contains(element)
println("Set $setItems contains $element")
We can also use the containsAll function to check whether a list contains another list. When it comes to finding a list, the containsAll function takes care of duplicates values:
val setItems = setOf(1,1,2,3,3,4,5,5)
var miniCollection = listOf(1,1,2,3,3)
result = setItems.containsAll(miniCollection)
println("setItems contains $miniCollection = $result")
miniCollection = listOf(1,2,3,4)
result = setItems.containsAll(miniCollection)
println("setItems contains $miniCollection = $result")
The containsAll function returns true for both single and duplicate values.