- Java Tutorial
- Java Introduction
- Java Features
- Java Simple Program
- JVM, JDK and JRE
- Java Syntax
- Java Comments
- Java Keywords
- Java Variables
- Java Literals
- Java Separators
- Java Datatypes
- Java Operators
- Java Statements
- Java Strings
- Java Arrays
- Control Statement
- Java If
- Java If-else
- Java If-else-if
- Java Nested If
- Java Switch
- Iteration Statement
- Java For Loop
- Java For Each Loop
- Java While Loop
- Java Do While Loop
- Java Nested Loop
- Java Break/Continue
- Java Methods
- Java Methods
- Java Method Parameters
- Java Method Overloading
- Java Recursion
- Java OOPS
- Java OOPs
- Java Classes/Objects
- Java Inheritance
- Java Polymorphism
- Java Encapsulation
- Java Abstraction
- Java Modifiers
- Java Constructors
- Java Interface
- Java static keyword
- Java this keyword
- Java File Handling
- Java File
- Java Create File
- Java Read/Write File
- Java Delete File
- Java Program To
- Add Two Numbers
- Even or Odd Numbers
- Reverse a String
- Swap Two Numbers
- Prime Number
- Fibonacci Sequence
- Palindrome Strings
- Java Reference
- Java String Methods
- Java Math Methods
Java Arrays
In Java, an array is a container object that holds a fixed number of values of a single type. Think of an array as a series of numbered slots, like a row of lockers, where each slot can store one piece of data. Arrays are incredibly efficient because they allow you to manage large sets of related data like 1,000 user IDs or a week's worth of temperature readings under a single variable name.
length.
Array Declaration:
- To use an array, you must first declare it. This tells the compiler the name of the array and what type of data it will hold.
- Arrays are declared using square brackets [].
- Syntax: dataType[] arrayName; (Preferred) or dataType arrayName[]; (Allowed, but less common in modern Java).
dataType[] arrayName syntax. It keeps the type information (int array) clearly separated from the variable name, making your code easier to read.
Array Initialization:
- Declaration only creates a reference; it doesn't create the actual array. You must initialize it to allocate memory.
- Fixed Initialization: If you already know the values, use curly braces:
int[] scores = {95, 80, 100}; - Size Initialization: If you don't know the values yet, specify the size:
int[] scores = new int[5];This creates 5 slots filled with default values (0 for numbers,falsefor booleans,nullfor objects).
ArrayList instead.
Accessing Array Elements:
- Array elements are accessed using index numbers. Crucially, Java uses 0-based indexing, meaning the first element is at index 0.
- Syntax: arrayName[index].
arrayName[array.length]. Since indexing starts at 0, the last valid index is always length - 1. Accessing length will throw an ArrayIndexOutOfBoundsException.
Array Length:
- The length of an array can be obtained using the length property. This is helpful for looping through the array without hardcoding its size.
- Syntax: arrayName.length.
length for arrays is a property (no parentheses), whereas for Strings, length() is a method. Beginners often mix these up!
Single-Dimensional Arrays:
- Single-dimensional arrays store elements in a simple linear sequence. They are perfect for lists like names, prices, or IDs.
- Example: int[] numbers = {1, 2, 3, 4, 5};
Multidimensional Arrays:
- Think of a multidimensional array as a "table" or "grid" with rows and columns. A 2D array is actually an "array of arrays."
- Example: int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; (This creates a 3x3 grid).
- Real-world use: Representing a chess board or a spreadsheet.
Array of Arrays (Jagged Arrays):
- Jagged arrays are multidimensional arrays where each row can have a different number of columns. This is useful for saving memory when data is uneven.
- Example: int[][] jaggedArray = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
Array Methods:
- The java.util.Arrays class is a powerful utility toolset. It provides methods to sort, search, compare, and even print arrays easily.
Arrays.sort(myArray): Sorts the array in ascending order.Arrays.toString(myArray): Returns a string representation of the array (great for debugging).
Example 1
import java.util.Arrays;
public class ArraysExample {
public static void main(String[] args) {
// Initialization with values
int[] numbers1 = {5, 2, 9, 1, 5};
// Initialization with size (all elements default to 0)
int[] numbers2 = new int[3];
// Modifying array elements using index
numbers2[0] = 10;
numbers2[1] = 20;
numbers2[2] = 30;
// Displaying the first element
System.out.println("First element of numbers1: " + numbers1[0]);
// Printing length
System.out.println("Length of numbers1: " + numbers1.length);
// Multidimensional array (Row 1: 1,2,3 | Row 2: 4,5,6)
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
// Accessing element at Row 2, Column 3 (Index 1, 2)
System.out.println("Element at row 2, col 3: " + matrix[1][2]);
// Sorting numbers1
Arrays.sort(numbers1);
System.out.println("Sorted numbers1: " + Arrays.toString(numbers1));
// Searching for the value 9 in the sorted array
int index = Arrays.binarySearch(numbers1, 9);
System.out.println("Value 9 found at index: " + index);
}
}
Example 2
public class ArraysExample {
public static void main(String[] args) {
// Standard List (Single-Dimensional)
String[] fruits = {"Apple", "Banana", "Cherry"};
// Grid Structure (Multidimensional)
// Represents 3 students, each with 2 test scores
int[][] studentScores = {
{85, 90},
{78, 88},
{92, 95}
};
// Uneven Data (Jagged Array)
// Each sub-array represents items in a shopping cart
String[][] shoppingCarts = {
{"Milk", "Bread", "Eggs"},
{"Soda"},
{"Paper Towels", "Soap"}
};
// Accessing single-dimensional
System.out.println("Fruit 1: " + fruits[0]);
// Accessing multidimensional (Student 3, Score 2)
System.out.println("Student 3, Score 2: " + studentScores[2][1]);
// Accessing jagged array (Cart 3, Item 1)
System.out.println("Cart 3, Item 1: " + shoppingCarts[2][0]);
}
}
Summary
Java arrays provide a structured way to handle collections of data efficiently. Whether you are using a single-dimensional array for a simple list, a multidimensional array for tabular data, or a jagged array for irregular data sets, mastering these structures is foundational for any Java developer. Remember that while arrays are fast and powerful, their fixed size means you should choose them primarily when you know the total number of elements in advance.