Arrays in Java

Arrays are fixed-size, ordered collections of elements of the same type. They’re one of the most basic data structures in Java.

Single-Dimensional Arrays

Declaration and Initialization

ArrayBasics.java
public class ArrayBasics {
    public static void main(String[] args) {
        // Declaration and initialization in different steps
        int[] numbers;          // Declaration
        numbers = new int[5];   // Initialization with default values
        
        // Declaration and initialization in one statement
        String[] names = new String[3];
        
        // Declaration and initialization with values
        double[] prices = {19.99, 29.99, 39.99};
        
        // Accessing and modifying array elements
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;
        numbers[3] = 40;
        numbers[4] = 50;
        
        names[0] = "Alice";
        names[1] = "Bob";
        names[2] = "Charlie";
        
        System.out.println("First number: " + numbers[0]);
        System.out.println("Array length: " + numbers.length);
        
        // Iterating through array
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("Number at index " + i + ": " + numbers[i]);
        }
        
        // Enhanced for loop
        for (String name : names) {
            System.out.println("Name: " + name);
        }
    }
}

Array Operations

ArrayOperations.java
public class ArrayOperations {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 9, 3};
        
        // Finding sum and average
        int sum = 0;
        for (int num : numbers) {
            sum += num;
        }
        double average = (double) sum / numbers.length;
        
        System.out.println("Sum: " + sum);
        System.out.println("Average: " + average);
        
        // Finding maximum and minimum
        int max = numbers[0];
        int min = numbers[0];
        
        for (int num : numbers) {
            if (num > max) max = num;
            if (num < min) min = num;
        }
        
        System.out.println("Maximum: " + max);
        System.out.println("Minimum: " + min);
        
        // Searching for an element
        int searchValue = 8;
        boolean found = false;
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] == searchValue) {
                System.out.println("Found " + searchValue + " at index " + i);
                found = true;
                break;
            }
        }
        
        if (!found) {
            System.out.println(searchValue + " not found in the array");
        }
    }
}

Two-Dimensional Arrays

MultiDimensionalArray.java
public class MultiDimensionalArray {
    public static void main(String[] args) {
        // Declaration and initialization
        int[][] matrix = new int[3][3];
        
        // Another way to initialize
        int[][] anotherMatrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
        
        // Assigning values to matrix
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                matrix[i][j] = i * 3 + j + 1;
            }
        }
        
        // Printing matrix
        System.out.println("Matrix:");
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + "\t");
            }
            System.out.println();
        }
        
        // Jagged array (arrays with different lengths)
        int[][] jagged = {
            {1, 2, 3},
            {4, 5},
            {6, 7, 8, 9}
        };
        
        System.out.println("\nJagged Array:");
        for (int i = 0; i < jagged.length; i++) {
            for (int j = 0; j < jagged[i].length; j++) {
                System.out.print(jagged[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

Common Array Algorithms

ArrayAlgorithms.java
public class ArrayAlgorithms {
    // Linear search
    public static int linearSearch(int[] arr, int target) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == target) {
                return i; // Return index if found
            }
        }
        return -1; // Return -1 if not found
    }
    
    // Bubble sort
    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    // Swap elements
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    
    // Binary search (requires sorted array)
    public static int binarySearch(int[] arr, int target) {
        int left = 0;
        int right = arr.length - 1;
        
        while (left <= right) {
            int mid = left + (right - left) / 2;
            
            if (arr[mid] == target) {
                return mid;
            }
            
            if (arr[mid] < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        
        return -1; // Not found
    }
    
    public static void main(String[] args) {
        int[] numbers = {64, 34, 25, 12, 22, 11, 90};
        
        System.out.println("Original array:");
        printArray(numbers);
        
        // Linear search
        int index = linearSearch(numbers, 25);
        System.out.println("Linear search for 25: " + (index != -1 ? "Found at index " + index : "Not found"));
        
        // Sort array
        bubbleSort(numbers);
        System.out.println("Sorted array:");
        printArray(numbers);
        
        // Binary search
        index = binarySearch(numbers, 25);
        System.out.println("Binary search for 25: " + (index != -1 ? "Found at index " + index : "Not found"));
    }
    
    public static void printArray(int[] arr) {
        for (int num : arr) {
            System.out.print(num + " ");
        }
        System.out.println();
    }
}

Arrays Utility Class

ArraysUtility.java
import java.util.Arrays;

public class ArraysUtility {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 9, 3};
        
        // Convert array to string
        System.out.println("Array: " + Arrays.toString(numbers));
        
        // Sort array
        Arrays.sort(numbers);
        System.out.println("Sorted: " + Arrays.toString(numbers));
        
        // Binary search
        int index = Arrays.binarySearch(numbers, 8);
        System.out.println("Binary search for 8: " + index);
        
        // Fill array
        int[] filled = new int[5];
        Arrays.fill(filled, 7);
        System.out.println("Filled array: " + Arrays.toString(filled));
        
        // Compare arrays
        int[] arr1 = {1, 2, 3};
        int[] arr2 = {1, 2, 3};
        int[] arr3 = {1, 2, 4};
        
        System.out.println("arr1 equals arr2: " + Arrays.equals(arr1, arr2));
        System.out.println("arr1 equals arr3: " + Arrays.equals(arr1, arr3));
        
        // Copy array
        int[] copied = Arrays.copyOf(numbers, numbers.length);
        System.out.println("Copied array: " + Arrays.toString(copied));
    }
}
⚠️
Remember that arrays have a fixed size once created. Use ArrayList if you need a dynamic-sized collection.

Learn about strings to understand text manipulation in Java.

Last updated on