Bird
Raised Fist0
Kotlinprogramming~5 mins

Set creation (setOf, mutableSetOf) in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does setOf() do in Kotlin?

setOf() creates an immutable set, which means you cannot add or remove elements after creation.

Click to reveal answer
beginner
How is mutableSetOf() different from setOf()?

mutableSetOf() creates a mutable set, allowing you to add or remove elements after the set is created.

Click to reveal answer
beginner
What happens if you try to add an element to a set created with setOf()?

You will get a compilation error because the set is immutable and does not support modification.

Click to reveal answer
beginner
Show how to create a mutable set of strings with elements "apple", "banana", and "cherry".
val fruits = mutableSetOf("apple", "banana", "cherry")
Click to reveal answer
intermediate
Why might you choose a set over a list in Kotlin?

Because sets automatically prevent duplicate elements and provide faster checks for whether an element exists.

Click to reveal answer
Which Kotlin function creates an immutable set?
AlistOf()
BmutableSetOf()
CsetOf()
DarrayOf()
What will happen if you call add() on a set created with setOf()?
AIt throws a runtime exception.
BIt causes a compilation error.
CIt adds the element successfully.
DIt removes the element instead.
How do you create an empty mutable set of integers in Kotlin?
AmutableSetOf<Int>()
BsetOf<Int>()
CemptySet<Int>()
DlistOf<Int>()
Which of these is true about sets in Kotlin?
ASets are always mutable.
BSets maintain the order of elements.
CSets allow duplicate elements.
DSets do not allow duplicate elements.
What is the type of the variable declared as val s = setOf(1, 2, 3)?
ASet<Int>
BArray<Int>
CList<Int>
DMutableSet<Int>
Explain how to create and use both immutable and mutable sets in Kotlin.
Think about whether you want to change the set after you create it.
You got /4 concepts.
    Describe a real-life example where using a set is better than a list.
    Think about a collection where you never want repeated items.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Kotlin function setOf(1, 2, 2, 3) return?
      easy
      A. A list containing elements: 1, 2, 2, 3
      B. A set containing duplicates: 1, 2, 2, 3
      C. A set containing unique elements: 1, 2, 3
      D. An error because of duplicate elements

      Solution

      1. Step 1: Understand setOf behavior

        setOf creates a set that holds only unique elements, automatically removing duplicates.
      2. Step 2: Analyze the input elements

        The input has elements 1, 2, 2, 3. The duplicate 2 is ignored in the set.
      3. Final Answer:

        A set containing unique elements: 1, 2, 3 -> Option C
      4. Quick Check:

        setOf removes duplicates = unique elements [OK]
      Hint: Remember: sets keep only unique items [OK]
      Common Mistakes:
      • Thinking sets keep duplicates like lists
      • Confusing setOf with listOf
      • Expecting an error for duplicates
      2. Which of the following is the correct way to create a mutable set of strings in Kotlin?
      easy
      A. val mySet = mutableSetOf<String>("apple", "banana")
      B. val mySet = setOf<String>("apple", "banana")
      C. val mySet = mutableSet("apple", "banana")
      D. val mySet = mutableSetOf("apple", "banana")

      Solution

      1. Step 1: Identify correct syntax for mutableSetOf

        The correct function is mutableSetOf with type parameter and parentheses.
      2. Step 2: Check each option

        val mySet = mutableSetOf<String>("apple", "banana") uses mutableSetOf<String>("apple", "banana"), which is correct. val mySet = setOf<String>("apple", "banana") uses setOf which creates an immutable set. val mySet = mutableSet("apple", "banana") uses a non-existent function mutableSet. val mySet = mutableSetOf("apple", "banana") has a syntax error with an extra quote.
      3. Final Answer:

        val mySet = mutableSetOf<String>("apple", "banana") -> Option A
      4. Quick Check:

        mutableSetOf syntax correct = val mySet = mutableSetOf<String>("apple", "banana") [OK]
      Hint: Use mutableSetOf() to create changeable sets [OK]
      Common Mistakes:
      • Using setOf instead of mutableSetOf for mutable sets
      • Misspelling mutableSetOf
      • Syntax errors with quotes or parentheses
      3. What will be the output of this Kotlin code?
      val numbers = mutableSetOf(1, 2, 3)
      numbers.add(2)
      numbers.add(4)
      println(numbers)
      medium
      A. Compilation error
      B. [1, 2, 3, 2, 4]
      C. [1, 2, 3]
      D. [1, 2, 3, 4]

      Solution

      1. Step 1: Understand mutableSetOf and add behavior

        The set starts with 1, 2, 3. Adding 2 again does nothing because sets ignore duplicates. Adding 4 adds a new element.
      2. Step 2: Determine final set contents

        After additions, the set contains 1, 2, 3, and 4.
      3. Final Answer:

        [1, 2, 3, 4] -> Option D
      4. Quick Check:

        Sets ignore duplicates, so 2 is not added twice [OK]
      Hint: Adding duplicates to sets does nothing [OK]
      Common Mistakes:
      • Expecting duplicates to appear in output
      • Confusing set print format with list
      • Thinking add returns error on duplicates
      4. Identify the error in this Kotlin code snippet:
      val fruits = setOf("apple", "banana")
      fruits.add("orange")
      println(fruits)
      medium
      A. Syntax error in setOf declaration
      B. Cannot add elements to an immutable set
      C. Missing import for setOf
      D. No error, code runs fine

      Solution

      1. Step 1: Check mutability of setOf

        setOf creates an immutable set that cannot be changed after creation.
      2. Step 2: Analyze the add operation

        Calling add on an immutable set causes a compilation error because the set cannot be modified.
      3. Final Answer:

        Cannot add elements to an immutable set -> Option B
      4. Quick Check:

        setOf = immutable, add() not allowed [OK]
      Hint: Use mutableSetOf to add or remove items [OK]
      Common Mistakes:
      • Trying to modify immutable sets
      • Confusing setOf with mutableSetOf
      • Ignoring compiler error messages
      5. You want to create a mutable set of integers from a list but only include numbers greater than 5. Which Kotlin code correctly does this?
      hard
      A. val nums = mutableSetOf(1, 6, 8, 3, 7).filterTo(mutableSetOf()) { it > 5 }
      B. val nums = setOf(1, 6, 8, 3, 7).filter { it > 5 }.toSet()
      C. val nums = mutableSetOf(1, 6, 8, 3, 7).filter { it > 5 }
      D. val nums = mutableSetOf(1, 6, 8, 3, 7).filter { it > 5 }.toSet()

      Solution

      1. Step 1: Understand filtering and set creation

        We want a mutable set with only numbers > 5. Using filterTo with a mutable set collects filtered items directly into a mutable set.
      2. Step 2: Evaluate each option

        val nums = mutableSetOf(1, 6, 8, 3, 7).filter { it > 5 } returns a List, not a mutable set. val nums = mutableSetOf(1, 6, 8, 3, 7).filterTo(mutableSetOf()) { it > 5 } correctly filters into a mutable set. val nums = setOf(1, 6, 8, 3, 7).filter { it > 5 }.toSet() creates an immutable set first, then filters to list and toSet(), producing an immutable set, not mutable. val nums = mutableSetOf(1, 6, 8, 3, 7).filter { it > 5 }.toSet() filters to a list then toSet(), producing an immutable set, not mutable.
      3. Final Answer:

        val nums = mutableSetOf(1, 6, 8, 3, 7).filterTo(mutableSetOf()) { it > 5 } -> Option A
      4. Quick Check:

        filterTo with mutableSetOf creates mutable set directly [OK]
      Hint: Use filterTo(mutableSetOf()) for filtered mutable sets [OK]
      Common Mistakes:
      • Using filter() returns list, not set
      • Not converting to mutable set after filtering
      • Confusing setOf and mutableSetOf usage
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard