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