Java Program to Work with Arrays - Operations and Examples
Learn essential array operations in Java including initialization, searching, sorting, and manipulation with comprehensive examples and explanations.
In this program, you'll learn to work with arrays by performing common operations like initialization, searching, sorting, and manipulation.
To understand this example, you should have the knowledge of the following Java programming topics:
Array Operations Program
Example 1: Basic Array Operations
class BasicArrayOperations {
public static void main(String[] args) {
// Array initialization
int[] numbers = {45, 23, 67, 12, 89, 34, 56};
System.out.println("=== Original Array ===");
printArray(numbers);
// Find maximum and minimum
int max = findMaximum(numbers);
int min = findMinimum(numbers);
System.out.println("\nMaximum value: " + max);
System.out.println("Minimum value: " + min);
// Calculate sum and average
int sum = calculateSum(numbers);
double average = (double) sum / numbers.length;
System.out.println("Sum: " + sum);
System.out.println("Average: " + average);
// Search for specific elements
int searchValue = 67;
int index = searchElement(numbers, searchValue);
if (index != -1) {
System.out.println("\nElement " + searchValue + " found at index: " + index);
} else {
System.out.println("\nElement " + searchValue + " not found in array");
}
}
// Method to print array
static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
if (i < arr.length - 1) {
System.out.print(", ");
}
}
System.out.println();
}
// Method to find maximum value
static int findMaximum(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
// Method to find minimum value
static int findMinimum(int[] arr) {
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
// Method to calculate sum
static int calculateSum(int[] arr) {
int sum = 0;
for (int num : arr) {
sum += num;
}
return sum;
}
// Method to search for an element
static int searchElement(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1; // Element not found
}
}Output:
=== Original Array ===
45, 23, 67, 12, 89, 34, 56
Maximum value: 89
Minimum value: 12
Sum: 326
Average: 46.57142857142857
Element 67 found at index: 2Example 2: Array Sorting and Manipulation
import java.util.Arrays;
class ArraySortingOperations {
public static void main(String[] args) {
int[] numbers = {64, 34, 25, 12, 22, 11, 90};
System.out.println("=== Original Array ===");
printArray(numbers);
// Bubble sort implementation
int[] bubbleSorted = numbers.clone();
bubbleSort(bubbleSorted);
System.out.println("\n=== After Bubble Sort ===");
printArray(bubbleSorted);
// Reverse array
int[] reversed = numbers.clone();
reverseArray(reversed);
System.out.println("\n=== Reversed Array ===");
printArray(reversed);
// Find second largest element
int secondLargest = findSecondLargest(numbers);
System.out.println("\nSecond largest element: " + secondLargest);
// Count even and odd numbers
countEvenOdd(numbers);
// Using built-in sort
int[] builtInSorted = numbers.clone();
Arrays.sort(builtInSorted);
System.out.println("\n=== Built-in Sort Result ===");
printArray(builtInSorted);
}
static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
if (i < arr.length - 1) {
System.out.print(", ");
}
}
System.out.println("]");
}
// Bubble sort implementation
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;
}
}
}
}
// Reverse array
static void reverseArray(int[] arr) {
int start = 0;
int end = arr.length - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
// Find second largest element
static int findSecondLargest(int[] arr) {
int largest = Integer.MIN_VALUE;
int secondLargest = Integer.MIN_VALUE;
for (int num : arr) {
if (num > largest) {
secondLargest = largest;
largest = num;
} else if (num > secondLargest && num != largest) {
secondLargest = num;
}
}
return secondLargest;
}
// Count even and odd numbers
static void countEvenOdd(int[] arr) {
int evenCount = 0;
int oddCount = 0;
for (int num : arr) {
if (num % 2 == 0) {
evenCount++;
} else {
oddCount++;
}
}
System.out.println("\nEven numbers count: " + evenCount);
System.out.println("Odd numbers count: " + oddCount);
}
}Output:
=== Original Array ===
[64, 34, 25, 12, 22, 11, 90]
=== After Bubble Sort ===
[11, 12, 22, 25, 34, 64, 90]
=== Reversed Array ===
[90, 11, 22, 12, 25, 34, 64]
Second largest element: 64
Even numbers count: 4
Odd numbers count: 3
=== Built-in Sort Result ===
[11, 12, 22, 25, 34, 64, 90]Example 3: Interactive Array Program
import java.util.Scanner;
class InteractiveArrayProgram {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the size of the array: ");
int size = scanner.nextInt();
int[] numbers = new int[size];
// Input array elements
System.out.println("Enter " + size + " integers:");
for (int i = 0; i < size; i++) {
System.out.print("Element " + (i + 1) + ": ");
numbers[i] = scanner.nextInt();
}
while (true) {
System.out.println("\n=== Array Operations Menu ===");
System.out.println("1. Display Array");
System.out.println("2. Find Maximum");
System.out.println("3. Find Minimum");
System.out.println("4. Calculate Sum");
System.out.println("5. Search Element");
System.out.println("6. Sort Array");
System.out.println("7. Reverse Array");
System.out.println("8. Exit");
System.out.print("Choose an option: ");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("Array: " + Arrays.toString(numbers));
break;
case 2:
System.out.println("Maximum: " + findMax(numbers));
break;
case 3:
System.out.println("Minimum: " + findMin(numbers));
break;
case 4:
System.out.println("Sum: " + calculateSum(numbers));
break;
case 5:
System.out.print("Enter element to search: ");
int searchValue = scanner.nextInt();
int index = linearSearch(numbers, searchValue);
if (index != -1) {
System.out.println("Element found at index: " + index);
} else {
System.out.println("Element not found!");
}
break;
case 6:
Arrays.sort(numbers);
System.out.println("Array sorted successfully!");
break;
case 7:
reverseArray(numbers);
System.out.println("Array reversed successfully!");
break;
case 8:
System.out.println("Thank you for using the array program!");
scanner.close();
return;
default:
System.out.println("Invalid choice! Please try again.");
}
}
}
static int findMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
static int findMin(int[] arr) {
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
static int calculateSum(int[] arr) {
int sum = 0;
for (int num : arr) {
sum += num;
}
return sum;
}
static int linearSearch(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
static void reverseArray(int[] arr) {
int start = 0;
int end = arr.length - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
}Sample Output:
Enter the size of the array: 5
Enter 5 integers:
Element 1: 10
Element 2: 20
Element 3: 15
Element 4: 25
Element 5: 5
=== Array Operations Menu ===
1. Display Array
2. Find Maximum
3. Find Minimum
4. Calculate Sum
5. Search Element
6. Sort Array
7. Reverse Array
8. Exit
Choose an option: 1
Array: [10, 20, 15, 25, 5]
=== Array Operations Menu ===
1. Display Array
2. Find Maximum
3. Find Minimum
4. Calculate Sum
5. Search Element
6. Sort Array
7. Reverse Array
8. Exit
Choose an option: 2
Maximum: 25Key Array Operations Covered
- Array Declaration and Initialization
- Element Access and Modification
- Searching Algorithms (Linear Search)
- Sorting Algorithms (Bubble Sort, Built-in Sort)
- Array Traversal (for loop, enhanced for loop)
- Mathematical Operations (sum, average, max, min)
- Array Manipulation (reverse, copy)
Important Array Methods
Arrays.toString()- Convert array to stringArrays.sort()- Sort array using built-in algorithmArrays.copyOf()- Create a copy of arrayarr.length- Get array lengtharr.clone()- Create a shallow copy
Next Steps
Try extending these programs by:
- Implementing binary search for sorted arrays
- Working with 2D arrays (matrices)
- Creating array of objects
- Implementing more sorting algorithms
- Adding array comparison operations