Array in Java5 min read

What is Array in Java?

An Array in Java is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type. Java provides a data structure, the array, which stores a fixed-size sequential collection of elements of the same type. Instead of declaring individual variables, such as number0, number1, so on to number99, you declare one array variable such as numbers and use numbers[0], numbers[1], so on to, numbers[99] to represent individual variables.


Declaring Array variables

dataType[ ] arrayRefVar; // preferred way.
OR
dataType arrayRefVar[ ]; // works but not preferred way.

Example:

double[ ] myList; // preferred way.
OR
double myList[ ]; // works but not preferred way.


Array

  • An array is a container object that holds a fixed number of values of a single type. The length of an array is established when the array is created. After creation, its length is fixed.
  • Each item in an array is called an element, and each element is accessed by its numerical index. As shown in the above illustration, numbering begins with 0. The 9th element, for example, would therefore be accessed at index 8.
Array in Java
Array in Java

The following program, ArrayDemo, creates an array of integers, puts some values in it, and prints each value to standard output.

class ArrayDemo{
  public static void main(String[] args){
    int[] anArray;
    anArray = new int[10]; // declares an array of integers and allocates memory for 10 integers
    anArray[0] = 100; // initialize first element
    anArray[1] = 200; // initialize second element 
    anArray[2] = 300; // so on..
    anArray[3] = 400;
    anArray[4] = 500; 
    anArray[5] = 600; 
    anArray[6] = 700;
    anArray[7] = 800;
    anArray[8] = 900;
    anArray[9] = 1000;
    
    //printing the values of array
    System.out.println("Element at index 0: " + anArray[0]); 
    System.out.println("Element at index 1: " + anArray[1]); 
    System.out.println("Element at index 2: " + anArray[2]); 
    System.out.println("Element at index 3: " + anArray[3]); 
    System.out.println("Element at index 4: " + anArray[4]); 
    System.out.println("Element at index 5: " + anArray[5]); 
    System.out.println("Element at index 6: " + anArray[6]); 
    System.out.println("Element at index 7: " + anArray[7]);
    System.out.println("Element at index 8: " + anArray[8]); 
    System.out.println("Element at index 9: " + anArray[9]);
  } 
}

The output from this program

Element at index O: 100 
Element at index 1: 200 
Element at index 2: 300 
Element at index 3: 400 
Element at index 4: 500 
Element at index 5: 600 
Element at index 6: 700 
Element at index 7: 800 
Element at index 8: 900 
Element at index 9: 1000

In a real-world programming situation, you’d probably use one of the supported looping constructs to iterate through each element of the array, rather than write each line individually as shown above. However, this example clearly illustrates the array syntax.


Declaring a variable to refer to an Array

Like declarations for variables of other types, an array declaration has two components: the array’s type and the array’s name. An array’s type is written as type[], where type is the data type of the contained elements; the square brackets are special symbols indicating that this variable holds an array. The size of the array is not part of its type (which is why the brackets are empty).

Similarly, you can declare arrays of other types as below

byte[] anArrayOfBytes; 
short[] anArrayOfShorts; 
long[] anArrayOfLongs; 
float[] anArrayOfFloats; 
double[] anArrayOfDoubles; 
boolean[] anArrayOfBooleans; 
char[] anArrayOfChars; 
String[] anArrayOfStrings;

You can also place the square brackets after the array’s name: float anArrayOfFloats[];. However, convention discourages this form. The brackets identify the array type and should appear with the type designation.


Creating, Initializing, and Accessing an Array in Java

One way to create an array is with the new operator. The next statement in the ArrayDemo program allocates an array with enough memory for ten integer elements and assigns the array to the anArray variable.

anArray = new int[10]; // create an array of integers.

If this statement were missing, the compiler would print an error like the following, and the compilation would fail:

ArrayDemo.java:4: Variable anArray may not have been initialized. 

The next few lines assign values to each element of the array:

anArray[0] = 100; // initialize first element 
anArray[1] = 200; // initialize second element
anArray[2] = 300; // etc.

Each array element is accessed by its numerical index:

System.out.println("Element 1 at index 0:" + anArray[O]); 
System.out.println("Element 2 at index 1:" + anArray[1]); 
System.out.println("Element 3 at index 2:" + anArray[2]); 

Alternatively, you can use the shortcut syntax to create and initialize an array:

int[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};

Here the length of the array is determined by the number of values provided between { and }.


Multidimensional Array in Java

You can also declare an array of arrays (also known as a multidimensional array) by using two or more sets of square brackets, such as String[]names. Each element, therefore, must be accessed by a corresponding number of index values.

In the Java programming language, a multidimensional array is simply an array whose components are themselves arrays. This is unlike arrays in C or Fortran. A consequence of this is that the rows are allowed to vary in length, as shown in the following MultiDimArrayDemo program: class MultiDimArrayDemo

public static void main(String[] args){
  String[][] names = {{"Mr.", "Mrs.", "Ms. "}, {"Smith", "Jones"}}; 
  System.out.println(names[0][0] + names[1][0]); //Mr. Smith 
  System.out.println(names[0][2] + names[1][1]); // Ms. Jones 
}

The output from this program

Mr. Smith
Ms. Jones

Finally, you can use the built-in length property to determine the size of an array. The code:

System.out.println(anArray.length);

This will print the array’s size to standard output.


Copying Arrays

The System class has an arraycopy method that you can use to efficiently copy data from one array into another:

public static void arraycopy(Object src, int srcpos, Object dest, int destPos, int length)

The two Object arguments specify the array to copy from and the array to copy to. The three int arguments specify the starting position in the source array, the starting position in the destination array, and the number of array elements to copy.

The following program, ArrayCopyDemo, declares an array of char elements, spelling the word “decaffeinated”. It uses arraycopy to copy a subsequence of array components into a second array:

class ArrayCopyDemo{
  public static void main(String[] args){
    char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' };
    char[] copyTo = new char[7];
    System arraycopy(copyFrom, 2, copyTo, 0,7);
    System.out.println(new String(copyTo));
  }
}

The output from this program

Caffein

Share:

Leave a Reply