Bird
Raised Fist0
Kotlinprogramming

Array creation and usage in Kotlin - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Array creation and usage
Start
↓
Create Array
↓
Access Elements
↓
Modify Elements
↓
Use Array in Code
↓
End
This flow shows how to create an array, access and modify its elements, then use it in your program.
Execution Sample
Kotlin
fun main() {
  val numbers = arrayOf(10, 20, 30)
  println(numbers[1])
  numbers[2] = 40
  println(numbers.joinToString())
}
This code creates an array, prints the second element, changes the third element, then prints all elements.
Execution Table
StepActionArray StateOutput
1Create array with elements 10, 20, 30[10, 20, 30]
2Access element at index 1[10, 20, 30]20
3Modify element at index 2 to 40[10, 20, 40]
4Print all elements joined by comma[10, 20, 40]10, 20, 40
💡 Program ends after printing the final array state.
Variable Tracker
VariableStartAfter Step 1After Step 3Final
numbersnull[10, 20, 30][10, 20, 40][10, 20, 40]
Key Moments - 3 Insights
Why does numbers[1] print 20 and not 10 or 30?
Because array indexing starts at 0, numbers[1] accesses the second element, which is 20 (see execution_table step 2).
What happens when we assign numbers[2] = 40?
The third element (index 2) changes from 30 to 40, updating the array state (see execution_table step 3).
Why do we use joinToString() to print the array?
Printing the array directly prints its contents like '[10, 20, 40]' with brackets; joinToString() creates a readable comma-separated string without brackets (see execution_table step 4).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the output at step 2?
A30
B10
C20
D40
💡 Hint
Check the 'Output' column at step 2 in the execution_table.
At which step does the array change its third element?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the 'Action' and 'Array State' columns in execution_table for the step where modification happens.
If we changed numbers[0] = 50 at step 3, what would be the final array?
A[10, 20, 40]
B[50, 20, 40]
C[50, 20, 30]
D[10, 20, 30]
💡 Hint
Refer to variable_tracker and imagine changing the first element at step 3.
Concept Snapshot
Array creation: val arr = arrayOf(1, 2, 3)
Access elements: arr[index], index starts at 0
Modify elements: arr[index] = newValue
Use joinToString() to print array nicely
Arrays hold fixed-size collections of items
Full Transcript
This example shows how to create an array in Kotlin using arrayOf with initial values. We access elements by their index starting at zero, so numbers[1] is the second element. We can change elements by assigning a new value to a specific index. Printing the array directly shows its contents with brackets like [10, 20, 40], so we use joinToString() to print elements clearly without brackets. The variable 'numbers' changes as we modify the array. The program ends after printing the final array.

Practice

(1/5)
1. What is the correct way to create an array of integers with values 1, 2, and 3 in Kotlin?
easy
A. val arr = Array(3) { 1, 2, 3 }
B. val arr = arrayOf(1, 2, 3)
C. val arr = IntArray(1, 2, 3)
D. val arr = [1, 2, 3]

Solution

  1. Step 1: Understand array creation syntax

    Kotlin uses arrayOf() to create an array with given elements.
  2. Step 2: Check each option

    val arr = arrayOf(1, 2, 3) uses arrayOf(1, 2, 3) which is correct. val arr = [1, 2, 3] uses square brackets which is invalid in Kotlin. val arr = IntArray(1, 2, 3) which uses invalid constructor arguments for IntArray. val arr = Array(3) { 1, 2, 3 } tries to pass multiple values in a lambda which is incorrect.
  3. Final Answer:

    val arr = arrayOf(1, 2, 3) -> Option B
  4. Quick Check:

    Use arrayOf() for arrays with elements [OK]
Hint: Use arrayOf() to create arrays with elements [OK]
Common Mistakes:
  • Using square brackets [] like in other languages
  • Confusing IntArray with Array<Int>
  • Trying to pass multiple values in Array constructor lambda
2. Which of the following is the correct syntax to create an array of size 5 with all elements initialized to zero in Kotlin?
easy
A. val arr = Array(5, 0)
B. val arr = Array(0, 0, 0, 0, 0)
C. val arr = Array(5) { 0 }
D. val arr = IntArray(5, 0)

Solution

  1. Step 1: Understand Array constructor usage

    Kotlin's Array(size) { init } creates an array of given size, initializing each element with the lambda result.
  2. Step 2: Evaluate options

    val arr = Array(5) { 0 } correctly uses Array(5) { 0 } to create an array of 5 zeros. val arr = Array(0, 0, 0, 0, 0) is invalid syntax. val arr = Array(5, 0) is invalid syntax. val arr = IntArray(5, 0) is invalid because IntArray constructor takes only size or size with init lambda, not two parameters.
  3. Final Answer:

    val arr = Array(5) { 0 } -> Option C
  4. Quick Check:

    Use Array(size) { value } to initialize [OK]
Hint: Use Array(size) with lambda to initialize all elements [OK]
Common Mistakes:
  • Passing two parameters to Array constructor incorrectly
  • Confusing IntArray constructor parameters
  • Passing multiple values directly to Array constructor
3. What will be the output of the following Kotlin code?
val arr = arrayOf(10, 20, 30)
println(arr[1])
medium
A. 20
B. 10
C. 30
D. IndexOutOfBoundsException

Solution

  1. Step 1: Understand array indexing

    Arrays in Kotlin are zero-indexed, so arr[0] is 10, arr[1] is 20, and arr[2] is 30.
  2. Step 2: Check the printed value

    The code prints arr[1], which is 20.
  3. Final Answer:

    20 -> Option A
  4. Quick Check:

    Array index 1 holds 20 [OK]
Hint: Remember arrays start at index 0 in Kotlin [OK]
Common Mistakes:
  • Confusing index 1 with first element
  • Expecting 30 instead of 20
  • Thinking arrays start at 1
4. Identify the error in the following Kotlin code snippet:
val arr = arrayOf(1, 2, 3)
arr[3] = 4
println(arr.joinToString())
medium
A. arr is immutable, cannot assign new value
B. No error, output is '1, 2, 3, 4'
C. Syntax error in array declaration
D. IndexOutOfBoundsException at arr[3] assignment

Solution

  1. Step 1: Check array size and indexing

    The array has 3 elements with indices 0, 1, 2. Accessing index 3 is out of bounds.
  2. Step 2: Understand runtime behavior

    Assigning arr[3] = 4 causes an IndexOutOfBoundsException at runtime.
  3. Final Answer:

    IndexOutOfBoundsException at arr[3] assignment -> Option D
  4. Quick Check:

    Array indices must be within 0 to size-1 [OK]
Hint: Array indices go from 0 to size-1 only [OK]
Common Mistakes:
  • Trying to assign value outside array bounds
  • Thinking array size auto-expands
  • Confusing immutability with index errors
5. You want to create an array of size 4 where each element is its index squared (0, 1, 4, 9). Which Kotlin code correctly does this?
hard
A. val arr = Array(4) { index -> index * index }
B. val arr = arrayOf(4) { index -> index * index }
C. val arr = intArrayOf(4) { index -> index * index }
D. val arr = Array(4) { -> it * it }

Solution

  1. Step 1: Understand array initialization with lambda

    Kotlin's Array(size) { index -> value } creates an array where each element is initialized by the lambda using the index.
  2. Step 2: Check each option

    val arr = Array(4) { index -> index * index } uses explicit lambda parameter index and correctly computes index squared. val arr = arrayOf(4) { index -> index * index } is invalid because arrayOf does not take a size and lambda. val arr = intArrayOf(4) { index -> index * index } is invalid syntax for the intArrayOf factory function. val arr = Array(4) { -> it * it } has invalid lambda syntax where it is undefined.
  3. Final Answer:

    val arr = Array(4) { index -> index * index } -> Option A
  4. Quick Check:

    Use Array(size) with index lambda for computed values [OK]
Hint: Use Array(size) with index lambda for computed elements [OK]
Common Mistakes:
  • Confusing it with index in lambda
  • Using arrayOf() for dynamic initialization
  • Not using lambda for element computation
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