Start learning free

LESSON 97 OF 410 · ARRAYS I

Static Array Length in Java

Lesson Read the full explanation

We can get the length of an array using the .length property like this:

int[] ourArray = {50, 40, 30};

// Printing the length:
System.out.println(ourArray.length); // Output: 3

Using the length

We can use the length to access items from the end of an array.

Because arrays are 0-indexed, the index of the last item is length - 1:

let ourArray = [50, 40, 30];

// Printing the last item:
System.out.println(ourArray[ourArray.length - 1]); // Output: 30

// Printing the second to last item:
System.out.println(ourArray[ourArray.length - 2]); // Output: 40

Assignment
Follow the Coding Tutorial and let's play with some arrays.


Hint
Look at the examples above if you get stuck.


STEP 1 OF 3
    Ctrl + Enter to check

    JAVA · ARRAYS I

    Static Array Length in Java, explained

    Introduction

    In this lesson, we will explore how to work with static arrays in Java, specifically focusing on how to determine the length of an array and use this information to access elements. Understanding array length is fundamental in programming as it allows us to iterate over arrays, access elements, and avoid common errors such as out-of-bounds exceptions.

    Arrays are widely used in various scenarios, such as storing collections of data, implementing algorithms, and managing resources. Mastering array operations is crucial for efficient and effective coding.

    Understanding the Basics

    Arrays in Java are fixed in size, meaning once they are created, their size cannot be changed. The length of an array can be accessed using the .length property. This property returns the number of elements in the array.

    For example:

    int[] ourArray = {50, 40, 30};
    System.out.println(ourArray.length); // Output: 3
    

    Here, ourArray.length returns 3 because there are three elements in the array.

    Main Concepts

    One key concept when working with arrays is that they are 0-indexed. This means the first element is at index 0, the second element is at index 1, and so on. The last element is at index length - 1.

    For example, to access the last element of an array:

    int[] ourArray = {50, 40, 30};
    System.out.println(ourArray[ourArray.length - 1]); // Output: 30
    

    Similarly, to access the second to last element:

    int[] ourArray = {50, 40, 30};
    System.out.println(ourArray[ourArray.length - 2]); // Output: 40
    

    Examples and Use Cases

    Let's look at some examples to solidify our understanding:

    // Example 1: Iterating over an array
    int[] numbers = {10, 20, 30, 40, 50};
    for (int i = 0; i < numbers.length; i++) {
        System.out.println(numbers[i]);
    }
    // Output: 10 20 30 40 50
    
    // Example 2: Finding the maximum value in an array
    int[] values = {3, 5, 7, 2, 8};
    int max = values[0];
    for (int i = 1; i < values.length; i++) {
        if (values[i] > max) {
            max = values[i];
        }
    }
    System.out.println("Maximum value: " + max); // Output: Maximum value: 8
    

    Common Pitfalls and Best Practices

    One common mistake is attempting to access an index that is out of bounds, which will result in an ArrayIndexOutOfBoundsException. Always ensure that your index is within the valid range (0 to length - 1).

    Best practices include:

    • Always check the array length before accessing elements.
    • Use enhanced for-loops for readability when you don't need the index.
    • Initialize arrays with meaningful default values if necessary.

    Advanced Techniques

    Advanced techniques include working with multi-dimensional arrays and using array utility methods from the java.util.Arrays class.

    For example, sorting an array:

    import java.util.Arrays;
    
    int[] numbers = {5, 3, 8, 1, 2};
    Arrays.sort(numbers);
    System.out.println(Arrays.toString(numbers)); // Output: [1, 2, 3, 5, 8]
    

    Code Implementation

    Here is a complete example demonstrating various array operations:

    public class ArrayOperations {
        public static void main(String[] args) {
            int[] ourArray = {50, 40, 30};
    
            // Printing the length of the array
            System.out.println("Length of the array: " + ourArray.length);
    
            // Accessing elements from the end of the array
            System.out.println("Last element: " + ourArray[ourArray.length - 1]);
            System.out.println("Second to last element: " + ourArray[ourArray.length - 2]);
    
            // Iterating over the array
            for (int i = 0; i < ourArray.length; i++) {
                System.out.println("Element at index " + i + ": " + ourArray[i]);
            }
    
            // Finding the maximum value in the array
            int max = ourArray[0];
            for (int i = 1; i < ourArray.length; i++) {
                if (ourArray[i] > max) {
                    max = ourArray[i];
                }
            }
            System.out.println("Maximum value: " + max);
        }
    }
    

    Debugging and Testing

    When debugging array-related code, pay attention to the array indices and ensure they are within bounds. Use print statements to verify the values at different indices.

    For testing, consider edge cases such as empty arrays, arrays with one element, and arrays with duplicate values.

    import org.junit.Test;
    import static org.junit.Assert.*;
    
    public class ArrayOperationsTest {
        @Test
        public void testArrayLength() {
            int[] array = {1, 2, 3};
            assertEquals(3, array.length);
        }
    
        @Test
        public void testMaxValue() {
            int[] array = {1, 3, 2};
            int max = array[0];
            for (int i = 1; i < array.length; i++) {
                if (array[i] > max) {
                    max = array[i];
                }
            }
            assertEquals(3, max);
        }
    }
    

    Thinking and Problem-Solving Tips

    When working with arrays, break down the problem into smaller parts. For example, if you need to find the maximum value, first iterate over the array and compare each element.

    Practice by solving array-related problems on coding challenge platforms to improve your skills.

    Conclusion

    Understanding how to work with static arrays and their length is fundamental in Java programming. It allows you to efficiently manage collections of data and avoid common errors. Practice these concepts to become proficient in array operations.

    Additional Resources

    Keep going with JavaAbout 340 step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free