Bird
Raised Fist0
Kotlinprogramming~5 mins

Collection size and emptiness checks in Kotlin - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Collection size and emptiness checks
O(1)
Understanding Time Complexity

When working with collections, checking if they are empty or finding their size is common.

We want to know how the time it takes to do these checks changes as the collection grows.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


fun checkCollection(collection: Collection<Any>) {
    if (collection.isEmpty()) {
        println("Collection is empty")
    } else {
        println("Collection size is ${collection.size}")
    }
}
    

This code checks if a collection is empty and then prints its size if not empty.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Checking if the collection is empty and getting its size.
  • How many times: Each check happens once per function call.
How Execution Grows With Input

Checking emptiness or size usually takes the same time no matter how big the collection is.

Input Size (n)Approx. Operations
101
1001
10001

Pattern observation: The time stays about the same even if the collection grows larger.

Final Time Complexity

Time Complexity: O(1)

This means checking if a collection is empty or getting its size takes the same short time no matter how many items it holds.

Common Mistake

[X] Wrong: "Checking size or emptiness takes longer as the collection grows."

[OK] Correct: Most collections keep track of their size internally, so these checks do not need to count items each time.

Interview Connect

Understanding that size and emptiness checks are quick helps you write efficient code and explain your choices clearly in interviews.

Self-Check

"What if the collection was a linked list without a stored size? How would the time complexity change?"

Practice

(1/5)
1. Which Kotlin function checks if a collection has no elements?
easy
A. count()
B. isNotEmpty()
C. size()
D. isEmpty()

Solution

  1. Step 1: Understand the purpose of isEmpty()

    This function returns true if the collection has zero elements.
  2. Step 2: Compare with other functions

    isNotEmpty() checks for one or more elements, count() and size return the number of elements but do not return a boolean.
  3. Final Answer:

    isEmpty() -> Option D
  4. Quick Check:

    Check empty collection with isEmpty() = true [OK]
Hint: Use isEmpty() to check for no elements [OK]
Common Mistakes:
  • Confusing isEmpty() with isNotEmpty()
  • Using count() to check emptiness
  • Calling size() as a function instead of property
2. Which of the following is the correct syntax to check if a list named items is not empty in Kotlin?
easy
A. if (items.isNotEmpty()) { ... }
B. if (items.count > 0) { ... }
C. if (items.size() > 0) { ... }
D. if (items.isEmpty) { ... }

Solution

  1. Step 1: Identify correct function call syntax

    In Kotlin, isNotEmpty() is a function and requires parentheses.
  2. Step 2: Check other options for syntax errors

    isEmpty without parentheses is invalid, size is a property, not a function, so size() is wrong, and count is a function, so count > 0 is invalid.
  3. Final Answer:

    if (items.isNotEmpty()) { ... } -> Option A
  4. Quick Check:

    Use isNotEmpty() with parentheses [OK]
Hint: Remember isNotEmpty() needs parentheses [OK]
Common Mistakes:
  • Using property syntax without parentheses for functions
  • Calling size as a function
  • Using count without parentheses
3. What is the output of this Kotlin code?
val numbers = listOf(1, 2, 3, 4)
println(numbers.size)
println(numbers.isEmpty())
println(numbers.isNotEmpty())
medium
A. 4 true false
B. 3 true false
C. 4 false true
D. Error: size is not a property

Solution

  1. Step 1: Check the size of the list

    The list has 4 elements, so numbers.size returns 4.
  2. Step 2: Evaluate emptiness checks

    numbers.isEmpty() returns false because the list is not empty.
    numbers.isNotEmpty() returns true because the list has elements.
  3. Final Answer:

    4 false true -> Option C
  4. Quick Check:

    Size = 4, empty? false, not empty? true [OK]
Hint: Remember size counts elements; isEmpty() returns false if not empty [OK]
Common Mistakes:
  • Thinking size is zero-based index
  • Confusing isEmpty() and isNotEmpty() results
  • Assuming size is a function, causing error
4. Identify the error in this Kotlin code snippet:
val data = listOf<String>()
if (data.isEmpty) {
    println("No data")
}
medium
A. Missing parentheses after isEmpty
B. listOf<String>() cannot be empty
C. println syntax is incorrect
D. data should be mutable

Solution

  1. Step 1: Check usage of isEmpty

    isEmpty is a function and must be called with parentheses: isEmpty().
  2. Step 2: Verify other parts of the code

    listOf<String>() creates an empty list correctly, println syntax is correct, and mutability is not required for checking emptiness.
  3. Final Answer:

    Missing parentheses after isEmpty -> Option A
  4. Quick Check:

    Functions need parentheses even if no arguments [OK]
Hint: Always add () when calling functions like isEmpty() [OK]
Common Mistakes:
  • Using property syntax for functions
  • Thinking empty list creation is invalid
  • Assuming mutability is needed for checks
5. You have a list of user names and want to print how many users are online only if the list is not empty. Which Kotlin code snippet correctly does this?
hard
A. if (users.isEmpty()) println("Online users: ${users.size}")
B. if (users.size > 0) println("Online users: ${users.size}")
C. if (users.count == 0) println("Online users: ${users.count}")
D. if (users.isNotEmpty) println("Online users: ${users.size}")

Solution

  1. Step 1: Check condition for non-empty list

    Using users.size > 0 correctly checks if the list has one or more elements.
  2. Step 2: Verify printing statement

    The print statement uses string interpolation to show the number of users online.
  3. Step 3: Analyze incorrect options

    isEmpty() checks for empty, so if (users.isEmpty()) println("Online users: ${users.size}") prints when empty, which is wrong.
    count is a function, so count == 0 is invalid.
    isNotEmpty without parentheses is incorrect syntax.
  4. Final Answer:

    if (users.size > 0) println("Online users: ${users.size}") -> Option B
  5. Quick Check:

    Check size > 0 for non-empty list [OK]
Hint: Use size > 0 or isNotEmpty() with parentheses [OK]
Common Mistakes:
  • Using isEmpty() to check for non-empty
  • Calling count without parentheses
  • Omitting parentheses on isNotEmpty()
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