Topic 73 of 119 7. Arrays and Strings in Java Interactive Tutorial

Java Arrays: Declaration, Allocation, Traversal, and Operations

10 mins read Last updated: 22 Aug 2026 27,629 views

Direct Answer & Core Concept

An array in Java is a fixed-size, homogeneous data structure that stores elements of the same type in contiguous memory locations. Arrays are first-class objects stored on the heap, indexed from 0 to array.length - 1.

Detailed Explanation & Mechanics

Java Arrays: Declaration, Allocation, Traversal, and Operations

Introduction

When a Java program needs to store many values of the same type, creating a separate variable for every value can become difficult. Arrays provide a simple way to keep multiple values together under one variable name.

A Java array stores elements of the same data type and gives each element an index. In this tutorial, you will learn Java array declaration, memory allocation, initialization, traversal, and common array operations.


What Is an Array in Java?

An array in Java is a collection of elements of the same data type stored under one variable name. Each element can be accessed using its index position.

For example, instead of creating five separate variables for five marks, you can store all marks inside one integer array.

Main.java
Run Online
int[] marks = {
    85, 90, 78, 92, 88
};

Here, marks contains five integer values.


Why Are Arrays Used in Java?

Arrays are useful when a program needs to store multiple related values. They make it easier to work with lists of numbers, names, marks, prices, IDs, and other data.

Instead of declaring many variables, you can use one array and process its elements using loops.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40, 50
};

This makes repetitive operations much easier.


Features of Java Arrays

Java arrays have several important characteristics. They store elements of one declared type and use zero-based indexing.

The size of an array is fixed after it is created. Java also provides a length property that tells you how many elements the array can contain.

Main features

  • Stores multiple values

  • Elements normally have the same type

  • Uses zero-based indexing

  • Fixed length after creation

  • Supports fast index-based access

  • Arrays are objects in Java


Array Declaration in Java

Before using an array, you can declare an array variable by specifying its data type followed by square brackets.

You can also write:

The first style, int[] numbers, is generally preferred because it clearly shows that numbers is an integer array.


Java Array Declaration Syntax

The basic syntax is:

For example:

Main.java
Run Online
String[] names;
double[] prices;
char[] letters;

At this stage, only the array variable is declared. Memory for the actual array elements has not yet been allocated.


Array Allocation in Java

After declaring an array, you can allocate memory using the new keyword.

Main.java
Run Online
int[] numbers = new int[5];

This creates an integer array capable of storing five elements.

The indexes are automatically created from 0 through 4.


Understanding Array Indexes

Java arrays use zero-based indexing. This means the first element is stored at index 0, not index 1.

For an array containing five elements:

Main.java
Run Online
Index: 0 1 2 3 4Value: 10 20 30 40 50

The last valid index is always length - 1.


Accessing Array Elements

You can access an array element by writing the array name followed by its index.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40
};
System.out.println(numbers[0]);
System.out.println(numbers[2]);

The output is:

The index tells Java exactly which element you want to read.


Changing an Array Element

Array elements can be changed after the array is created.

Main.java
Run Online
int[] numbers = {
    10, 20, 30
};
numbers[1] = 99;
System.out.println(numbers[1]);

Output:

Only the element at index 1 changes. The other elements remain unchanged.


Array Initialization in Java

An array can be initialized while it is being declared.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40, 50
};

Java automatically determines the size from the number of values.

In this example, the array contains five elements, so its length is 5.


Creating an Array with new

You can also create an array using the new keyword and then assign values individually.

Main.java
Run Online
int[] numbers = new int[3];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;

This approach is useful when the values are not known at the time the array is created.


Default Values in Java Arrays

When an array is created using new, Java automatically gives its elements default values.

For example, integer arrays receive 0, boolean arrays receive false, and object references receive null.

Main.java
Run Online
int[] numbers = new int[3];
System.out.println(numbers[0]);

Output:


Default Values by Data Type

Data TypeDefault Value
int0
long0L
float0.0f
double0.0d
char'\u0000'
booleanfalse
Object typesnull

These values are assigned automatically when the array is created.


Finding the Length of an Array

Java provides the length property to find the number of elements in an array.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40
};
System.out.println(numbers.length);

Output:

Remember that length is a property, not a method. Therefore, write numbers.length, not numbers.length().


Traversing an Array

Traversal means visiting each element of an array one by one.

A for loop is commonly used for array traversal because it gives you access to the index.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40
};
for (int i = 0;
i < numbers.length;
i++) {
    System.out.println(numbers[i]);
}

This prints every element from the first position to the last.


Traversing an Array with Enhanced for Loop

Java also provides the enhanced for loop, often called the for-each loop.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40
};
for (int number : numbers) {
    System.out.println(number);
}

This is useful when you only need the values and do not need the index position.


For Loop vs For-Each Loop

A traditional for loop is useful when you need the index.

Main.java
Run Online
for (int i = 0;
i < numbers.length;
i++) {
    System.out.println(i + ": " + numbers[i]);
}

A for-each loop is simpler when you only need each value.

Main.java
Run Online
for (int number : numbers) {
    System.out.println(number);
}

Choose the loop based on what your program needs.


Reading Array Values from the User

You can also fill an array using input from the user.

Main.java
Run Online
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int[] numbers = new int[3];
        for (int i = 0;
        i < numbers.length;
        i++) {
            numbers[i] = input.nextInt();
        } for (int number : numbers) {
            System.out.println(number);
        }
    }
}

The first loop stores the values, while the second loop displays them.


Searching an Array

A simple linear search checks array elements one by one until the required value is found.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40, 50
};
int target = 30;
for (int number : numbers) {
    if (number == target) {
        System.out.println("Found");
        break;
    }
}

This technique is easy to understand and works well for small arrays.


Finding the Largest Element

You can find the largest number by comparing each element with the current maximum.

Main.java
Run Online
int[] numbers = {
    25, 10, 45, 30, 15
};
int max = numbers[0];
for (int number : numbers) {
    if (number > max) {
        max = number;
    }
}System.out.println("Largest: " + max);

The variable max is updated whenever a larger value is found.


Finding the Smallest Element

The same idea can be used to find the smallest value.

Main.java
Run Online
int[] numbers = {
    25, 10, 45, 30, 15
};
int min = numbers[0];
for (int number : numbers) {
    if (number < min) {
        min = number;
    }
}System.out.println("Smallest: " + min);

The first element is used as the initial minimum, and the remaining values are compared against it.


Calculating the Sum of Array Elements

An array can be processed to calculate the total of all its values.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40
};
int sum = 0;
for (int number : numbers) {
    sum += number;
}System.out.println("Sum: " + sum);

Output:

This technique is commonly used for marks, prices, sales values, and other numeric data.


Calculating the Average

After calculating the sum, you can divide it by the number of elements to calculate the average.

Main.java
Run Online
int[] marks = {
    80, 70, 90, 60
};
int sum = 0;
for (int mark : marks) {
    sum += mark;
}double average =(double) sum / marks.length;
System.out.println("Average: " + average);

Casting sum to double helps preserve the decimal part of the result.


Copying an Array

Java provides several ways to copy array contents. One simple method is Arrays.copyOf().

Main.java
Run Online
import java.util.Arrays;
int[] original = {
    10, 20, 30
};
int[] copy = Arrays.copyOf(original, original.length);
System.out.println(Arrays.toString(copy));

The copied array contains the same values as the original array.


Comparing Arrays

Using == on arrays checks whether two variables refer to the same array object. It does not compare every element.

For content comparison, use Arrays.equals().

Main.java
Run Online
import java.util.Arrays;
int[] a = {
    10, 20, 30
};
int[] b = {
    10, 20, 30
};
System.out.println(Arrays.equals(a, b));

Output:


Sorting an Array

Java provides Arrays.sort() for sorting array elements.

Main.java
Run Online
import java.util.Arrays;
int[] numbers = {
    40, 10, 30, 20
};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));

Output:

For basic array sorting, this method is much easier than writing a sorting algorithm yourself.


Printing an Array

Printing an array directly with System.out.println() does not normally display its elements.

Instead, use Arrays.toString() for a one-dimensional array.

Main.java
Run Online
import java.util.Arrays;
int[] numbers = {
    10, 20, 30
};
System.out.println(Arrays.toString(numbers));

Output:


Reversing an Array

Java does not provide a simple reverse() method for primitive arrays in Arrays. You can reverse an array manually by swapping elements.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40, 50
};
for (int i = 0;
i < numbers.length / 2;
i++) {
    int temp = numbers[i];
    numbers[i] = numbers[numbers.length - 1 - i];
    numbers[numbers.length - 1 - i] = temp;
}

After the operation, the array becomes:


Inserting a Value into an Array

A normal Java array has a fixed length, so you cannot simply increase its size when inserting a new element.

You need to create another array or use a collection such as ArrayList.

For fixed-size data, arrays are useful. For dynamically changing data, collections are often more convenient.


Removing an Element from an Array

A Java array does not have a built-in remove operation that reduces its length.

You can create a new array and copy the required elements, or use an ArrayList when elements need to be added and removed frequently.

This fixed-size behavior is one of the main differences between arrays and dynamic collections.


One-Dimensional Array

A one-dimensional array stores values in a single sequence.

Main.java
Run Online
int[] numbers = {
    10, 20, 30, 40
};

You can visualize it like this:

Main.java
Run Online
Index: 0 1 2 3Value: 10 20 30 40

This is the most common type of array used in beginner Java programs.


Two-Dimensional Array

A two-dimensional array stores data in rows and columns. It is useful for tables, matrices, grids, and similar structures.

Main.java
Run Online
int[][] matrix = {
{
        1, 2, 3
    }, {
        4, 5, 6
    }
};

You can access an element using two indexes:

Main.java
Run Online
System.out.println(matrix[1][2]);

Output:


Traversing a Two-Dimensional Array

Nested loops are commonly used to process a two-dimensional array.

Main.java
Run Online
int[][] matrix = {
{
        1, 2, 3
    }, {
        4, 5, 6
    }
};
for (int i = 0;
i < matrix.length;
i++) {
    for (int j = 0;
    j < matrix[i].length;
    j++) {
        System.out.print(matrix[i][j] + " ");
    } System.out.println();
}

The outer loop processes rows, while the inner loop processes columns.


Jagged Arrays in Java

Java also supports arrays where each row can have a different length. These are commonly called jagged arrays.

Main.java
Run Online
int[][] numbers = {
{
        1, 2
    }, {
        3, 4, 5
    }, {
        6
    }
};

Here, the first row has two elements, the second has three, and the third has one.


Array of Strings

Arrays are not limited to numbers. You can create an array of strings.

Main.java
Run Online
String[] names = {
    "Amit", "Rahul", "Priya", "Neha"
};
for (String name : names) {
    System.out.println(name);
}

This is useful for storing names, city names, product names, and other text values.


Array of Objects

Java arrays can also store object references.

Main.java
Run Online
Student[] students = new Student[3];

The array contains references that can point to Student objects.

Main.java
Run Online
students[0] = new Student();
students[1] = new Student();

This is useful when a program needs to manage multiple objects of the same type.


Passing an Array to a Method

Arrays can be passed to methods just like other variables.

Main.java
Run Online
public static void printNumbers(int[] numbers) {
    for (int number : numbers) {
        System.out.println(number);
    }
}

You can call the method like this:

Main.java
Run Online
int[] numbers = {
    10, 20, 30
};
printNumbers(numbers);

This makes array-processing code reusable.


Returning an Array from a Method

A Java method can also return an array.

Main.java
Run Online
public static int[] createNumbers() {
    return new int[] {
        10, 20, 30
    };
}

The returned array can be stored in another array variable:

Main.java
Run Online
int[] numbers = createNumbers();

This is useful when a method needs to produce multiple values of the same type.


ArrayIndexOutOfBoundsException

One common error is trying to access an index that does not exist.

Main.java
Run Online
int[] numbers = {
    10, 20, 30
};
System.out.println(numbers[3]);

This causes an ArrayIndexOutOfBoundsException because valid indexes are only 0, 1, and 2.

Always remember that the last valid index is length - 1.


Null Array Reference

An array variable can contain null when it has not been assigned an array object.

Trying to access:

Main.java
Run Online
System.out.println(numbers.length);

will cause a NullPointerException.

The variable must refer to an actual array before accessing its elements or length.


Array vs ArrayList

Arrays have a fixed size, while ArrayList can grow and shrink as elements are added or removed.

Main.java
Run Online
int[] numbers = new int[5];

is useful when the size is known.

Main.java
Run Online
ArrayList<Integer> numbers = new ArrayList<>();

is useful when the number of elements may change during program execution.


Common Mistakes with Java Arrays

Beginners often make small indexing or initialization mistakes when working with arrays.

Some common problems include:

  • Starting an index at 1 instead of 0

  • Accessing array[array.length]

  • Forgetting to allocate an array

  • Using length() instead of length

  • Comparing arrays with == when content comparison is required

  • Trying to resize a normal array directly

Understanding these mistakes can prevent many beginner-level errors.


Best Practices for Java Arrays

Use meaningful array names such as marks, prices, or studentNames instead of unclear names like a or x.

Use array.length when writing loops instead of manually entering the array size. This makes the code safer if the array size changes later.

For frequent insertion and deletion, consider Java collections such as ArrayList instead of a normal array.


Java Arrays: Important Methods from Arrays Class

The java.util.Arrays class provides several useful methods for working with arrays.

MethodPurpose
Arrays.toString()Converts a one-dimensional array to readable text
Arrays.sort()Sorts array elements
Arrays.equals()Compares array contents
Arrays.copyOf()Creates a copy of an array
Arrays.fill()Fills elements with a value
Arrays.binarySearch()Searches a sorted array

These methods can reduce the amount of manual code required for common operations.


Complete Java Array Example

Here is a simple program that declares an array, traverses it, and calculates its total.

Main.java
Run Online
public class Main {
    public static void main(String[] args) {
        int[] marks = {
            80, 75, 90, 85, 95
        };
        int total = 0;
        for (int mark : marks) {
            System.out.println(mark);
            total += mark;
        } double average =(double) total / marks.length;
        System.out.println("Total: " + total);
        System.out.println("Average: " + average);
    }
}

This example combines several important concepts: array initialization, for-each traversal, length, addition, and average calculation.


Java Array Memory Concept

An array is an object in Java, and the array variable stores a reference to that object.

For example:

Main.java
Run Online
int[] numbers = new int[3];

The variable numbers refers to an array object containing space for three integer elements.

This is why arrays can be created dynamically using the new keyword.


Frequently Asked Questions

What is an array in Java?

An array is an object that stores multiple elements under one variable name. Its elements are accessed using indexes, starting from 0.

How do you declare an array in Java?

You can declare an integer array like this:

This declares the array variable but does not create the array itself.

How do you create an array in Java?

Use the new keyword with the required size:

Main.java
Run Online
int[] numbers = new int[5];

This creates an array with five integer elements.

Can the size of a Java array change?

No. A normal Java array has a fixed length after it is created. If you need a dynamically changing collection, ArrayList may be more suitable.

What is the first index of a Java array?

The first index is 0.

Main.java
Run Online
int[] numbers = {
    10, 20, 30
};

Here, numbers[0] contains 10.

What is the last index of an array?

The last valid index is:

For an array with five elements, the last index is 4.

What happens if I use an invalid array index?

Java throws an ArrayIndexOutOfBoundsException when you try to access an index outside the valid range.

What is array traversal?

Array traversal means visiting the elements of an array one by one. A traditional for loop or enhanced for loop is commonly used for this purpose.

Can an array store Strings?

Yes. Java supports arrays of strings:

Main.java
Run Online
String[] names = {
    "Amit", "Priya", "Rahul"
};

Can an array store objects?

Yes. Java arrays can store references to objects of a particular type.

What is the difference between an array and ArrayList?

An array has a fixed length, while ArrayList can dynamically grow or shrink. Arrays are useful when the required size is known, while collections are useful for changing data.


Graphic Design and Image Ideas

Graphic 1 — Java Array Indexing

Create a horizontal array diagram:

Architecture Diagram
Java Array

Index       0       1       2       3       4
          ┌───────┬───────┬───────┬───────┬───────┐
Value     │  10   │  20   │  30   │  40   │  50   │
          └───────┴───────┴───────┴───────┴───────┘

Add a small note:

First index = 0 | Last index = length - 1


Graphic 2 — Array Declaration and Allocation

Show the difference visually:

Main.java
Run Online
Declaration↓int[] numbers;
↓Allocation↓numbers = new int[5];
↓Array Created↓[ 0][ 0][ 0][ 0][ 0]

This will be particularly useful for beginners because declaration and allocation are often confused.


Graphic 3 — Array Traversal

Show a loop moving through every element:

Main.java
Run Online
[10] →[20] →[30] →[40] →[50] ↑index 0for loop↓visit each element

Use arrows to show that the loop starts at index 0 and continues until index < array.length.


Graphic 4 — One-Dimensional vs Two-Dimensional Array

Main.java
Run Online
1D Array[10][20][30][40]2D Array[10][20][30][40][50][60]

Label the first as single sequence and the second as rows + columns.


Graphic 5 — Java Array Operations

Create a central box:

Architecture Diagram
             JAVA ARRAY
                 │
     ┌───────────┼───────────┐
↓

↓

↓
Search       Sort        Traverse
↓

↓

↓
Find value  Order data  Visit values
     │           │           │
     └───────────┼───────────┘
↓
Process Elements

This would work well as the main featured image for the tutorial.

Runnable Code Example: Java Arrays

Java 17+
Main.java
Run Online
import java.util.Arrays;
public class ArrayDemo {
    public static void main(String[] args) {
        int[] numbers = {
            45, 12, 85, 32, 89
        };
        Arrays.sort(numbers);
        System.out.println("Sorted Array: " + Arrays.toString(numbers));
        System.out.println("Array Length: " + numbers.length);
        System.out.println("First Element: " + numbers[0]);
    }
}

Common Java Technical Interview Questions & Answers

Interview Prep
Q1

What exception is thrown if you access an invalid index in a Java array?

ArrayIndexOutOfBoundsException.
Q2

Are arrays objects in Java?

Yes, every array type inherits directly from java.lang.Object and implements Cloneable and Serializable.

Key Takeaways, Best Practices & Clean Code Rules

Java Best Practice & Production Rules

Use java.util.Arrays.toString() or Arrays.deepToString() for printing arrays during logging and debugging.