Introduction to Arrays
A Java array is an ordered collection of primitives, object references, or other arrays. Java arrays are homogeneous: except as allowed by polymorphism, all elements of an array must be of the same type.
Each variable is referenced by array name and its index. Arrays may have one or more dimensions.
One-Dimensional Arrays
A one-dimensional array is a list of similar-typed variables. The general form of a one-dimensional array declaration is:
type var-name[ ];
type
declares the array type.type
also determines the data type of each array element.
The following declares an array named days with the type "array of int":
int days[];
days
is an array variable.- The value of days is set to
null
.
Allocate memory for array
You allocate memory using new
and assign it to array variables.
new
is a special operator that allocates memory.
The general form is:
arrayVar = new type[size];
type
specifies the type of data being allocated.size
specifies the number of elements.arrayVar
is the array variable.
The following two statements first create an int type array variable and then allocate memory for it to store 12 int type values.
int days[];
days = new int[12];
Array creation is a two-step process.
- declare a variable of the desired array type.
- allocate the memory using
new
.
public class Main {
public static void main(String[] argv) {
int days[];
days = new int[12];
days[1] = 28;
System.out.println(days[1]);
}
}
It is possible to combine the declaration of the array variable with the allocation of the array itself.
int month_days[] = new int[12];
Array Element Initialization Values
Element Type | Initial Value |
---|---|
byte | 0 |
int | 0 |
float | 0.0f |
char | '\u0000' |
object reference | null |
short | 0 |
long | 0L |
double | 0.0d |
boolean | false |
Alternative Array Declaration Syntax
The square brackets follow the type specifier, and not the name of the array variable.
type[] var-name;
For example, the following two declarations are equivalent:
int al[] = new int[3];
int[] a2 = new int[3];
The following declarations are also equivalent:
char d1[][] = new char[3][4];
char[][] d2 = new char[3][4];