Bird
Raised Fist0
DSA Javaprogramming

Array Traversal Patterns in DSA Java

Choose your learning style10 modes available
Mental Model
Going through each item in an array one by one to look at or use it.
Analogy: Like reading a list of names on a paper from top to bottom, checking each name carefully.
[0] -> [1] -> [2] -> [3] -> [4] -> null
 ↑
 start at index 0
Dry Run Walkthrough
Input: array: [5, 3, 8, 6, 2]
Goal: Visit each element in the array from start to end and print it.
Step 1: Start at index 0 and read the first element
[5] -> [3] -> [8] -> [6] -> [2]
 ↑
 current index = 0
Why: We begin at the first element to start traversal
Step 2: Move to index 1 and read the second element
[5] -> [3] -> [8] -> [6] -> [2]
      ↑
 current index = 1
Why: We move forward to visit the next element
Step 3: Move to index 2 and read the third element
[5] -> [3] -> [8] -> [6] -> [2]
           ↑
 current index = 2
Why: Continue moving forward to cover all elements
Step 4: Move to index 3 and read the fourth element
[5] -> [3] -> [8] -> [6] -> [2]
                ↑
 current index = 3
Why: Keep moving forward to reach the end
Step 5: Move to index 4 and read the fifth element
[5] -> [3] -> [8] -> [6] -> [2]
                     ↑
 current index = 4
Why: Last element to visit before finishing
Result:
Final state:
[5] -> [3] -> [8] -> [6] -> [2]
Traversal complete, all elements visited.
Annotated Code
DSA Java
public class ArrayTraversal {
    public static void traverseArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        int[] array = {5, 3, 8, 6, 2};
        traverseArray(array);
    }
}
for (int i = 0; i < arr.length; i++) {
start from first index and move forward until last index
System.out.print(arr[i] + " ");
access and print current element at index i
OutputSuccess
5 3 8 6 2
Complexity Analysis
Time: O(n) because we visit each of the n elements exactly once
Space: O(1) because we use only a fixed amount of extra space regardless of input size
vs Alternative: Compared to random access, traversal is simple and efficient with no extra overhead
Edge Cases
empty array
loop does not run, nothing is printed
DSA Java
for (int i = 0; i < arr.length; i++) {
array with one element
loop runs once and prints the single element
DSA Java
for (int i = 0; i < arr.length; i++) {
When to Use This Pattern
When you need to process or check every item in a list or array, use array traversal to visit each element in order.
Common Mistakes
Mistake: Starting loop at index 1 instead of 0, missing the first element
Fix: Always start traversal loop at index 0 to include all elements
Mistake: Using <= instead of < in loop condition causing out-of-bounds error
Fix: Use i < arr.length to stay within valid indices
Summary
It goes through each element in an array one by one.
Use it when you want to look at or use every item in a list.
Remember to start at the first element and stop after the last.

Practice

(1/5)
1. What does the following Java code snippet do?
for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); }
easy
A. Prints all elements of the array from end to start
B. Prints only the first element of the array
C. Prints all elements of the array from start to end
D. Prints only the last element of the array

Solution

  1. Step 1: Understand the loop range

    The loop starts at index 0 and runs while i is less than the array length, so it covers all valid indices from start to end.
  2. Step 2: Analyze the print statement inside the loop

    Each element at index i is printed followed by a space, so all elements are printed in order.
  3. Final Answer:

    Prints all elements of the array from start to end -> Option C
  4. Quick Check:

    Loop from 0 to length-1 prints all elements [OK]
Hint: Loop from 0 to length-1 prints all elements in order [OK]
Common Mistakes:
  • Confusing loop direction and thinking it prints backwards
  • Assuming it prints only one element
  • Ignoring the loop condition
2. Which of the following is the correct syntax to traverse an array arr backwards in Java?
easy
A. for (int i = arr.length; i > 0; i--)
B. for (int i = 0; i < arr.length; i++)
C. for (int i = 1; i <= arr.length; i++)
D. for (int i = arr.length - 1; i >= 0; i--)

Solution

  1. Step 1: Identify correct start and end indices for backward traversal

    Backward traversal starts at last index (arr.length - 1) and ends at 0 inclusive.
  2. Step 2: Check loop condition and decrement

    The loop continues while i is greater than or equal to 0, decrementing i each time, correctly covering all indices backwards.
  3. Final Answer:

    for (int i = arr.length - 1; i >= 0; i--) -> Option D
  4. Quick Check:

    Start at last index, go down to 0 [OK]
Hint: Start at length-1, loop down to 0 with i-- [OK]
Common Mistakes:
  • Starting loop at arr.length (out of bounds)
  • Using i > 0 instead of i >= 0 (misses index 0)
  • Starting loop at 1 instead of length-1
3. What is the output of the following code?
int[] arr = {2, 4, 6, 8};
for (int i = 1; i < arr.length; i += 2) {
    System.out.print(arr[i] + " ");
}
medium
A. 4 8
B. 2 6
C. 4 6 8
D. 2 4 6 8

Solution

  1. Step 1: Identify loop indices

    The loop starts at i=1 and increments by 2, so i takes values 1 and 3 (since arr.length=4).
  2. Step 2: Print elements at indices 1 and 3

    arr[1] = 4 and arr[3] = 8, so output is "4 8 "
  3. Final Answer:

    4 8 -> Option A
  4. Quick Check:

    Indices 1 and 3 printed: 4 and 8 [OK]
Hint: Loop i=1; i<length; i+=2 prints odd indices [OK]
Common Mistakes:
  • Assuming loop prints all elements
  • Confusing index increments
  • Printing elements at even indices instead
4. Find the error in this code snippet that tries to print array elements backwards:
int[] arr = {1, 3, 5, 7};
for (int i = arr.length; i >= 0; i--) {
    System.out.print(arr[i] + " ");
}
medium
A. Loop starts at arr.length which is out of bounds
B. Loop condition should be i <= arr.length
C. Array index should start at 0
D. No error, code works fine

Solution

  1. Step 1: Check starting index of loop

    arr.length is 4, but valid indices are 0 to 3. Starting at 4 causes ArrayIndexOutOfBoundsException.
  2. Step 2: Correct starting index for backward traversal

    Loop should start at arr.length - 1 (3) to access last element safely.
  3. Final Answer:

    Loop starts at arr.length which is out of bounds -> Option A
  4. Quick Check:

    Array indices go from 0 to length-1 [OK]
Hint: Array indices max is length-1, not length [OK]
Common Mistakes:
  • Starting loop at arr.length instead of arr.length-1
  • Ignoring index out of bounds error
  • Confusing loop condition signs
5. Given an integer array arr, which code snippet correctly prints all elements at even indices in reverse order?
hard
A. for (int i = arr.length - 1; i >= 0; i -= 2) { System.out.print(arr[i] + " "); }
B. for (int i = (arr.length % 2 == 0 ? arr.length - 2 : arr.length - 1); i >= 0; i -= 2) { System.out.print(arr[i] + " "); }
C. for (int i = 0; i < arr.length; i += 2) { System.out.print(arr[i] + " "); }
D. for (int i = 1; i < arr.length; i += 2) { System.out.print(arr[i] + " "); }

Solution

  1. Step 1: Determine the highest even index to start from

    If array length is even, highest even index is length-2; if odd, it's length-1.
  2. Step 2: Loop backwards by 2 steps to cover even indices

    Start from the highest even index and decrement by 2 to print all even indices in reverse order.
  3. Final Answer:

    for (int i = (arr.length % 2 == 0 ? arr.length - 2 : arr.length - 1); i >= 0; i -= 2) { System.out.print(arr[i] + " "); } -> Option B
  4. Quick Check:

    Start at highest even index, step down by 2 [OK]
Hint: Start at highest even index, decrement by 2 [OK]
Common Mistakes:
  • Starting at length-1 without checking even index
  • Using i -= 1 instead of i -= 2
  • Printing odd indices instead of even
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