Initializing an array

17 January 2012 By Nithya Vasudevan 647 views No Comment
1 Flares Twitter 0 Facebook 1 Google+ 0 1 Flares ×

One Dimensional Array

Initializing an array means assigning values to the array elements. It can be either primitive values (12, 75.5, true, etc) or object reference (Animal, Person, String, etc)

package com.ibytecode.arrays;
class Student
{
	String name;
	int id;
}

public class OneDReferenceArray {
	public static void main(String[] args) {
		Student[] students = new Student[3];
		
		Student studentOne = new Student();
		students[0] = studentOne; //Null reference
		students[1] = new Student();
		
		System.out.println(students[2]); //Null reference
		System.out.println(students[2].name);//NullPointerException
	}
}

null
Exception in thread “main” java.lang.NullPointerException
at com.ibytecode.arrays.TwoDReferenceArray.main(TwoDReferenceArray.java:17)

  • Individual elements in the array can be accessed using index.
    students[0] = new Student();
  • Index should start from 0 to (size-1) i.e.) if the size = 3 then index numbers will be from 0 through 2.
  • Trying to access index < 0 or index >= size will throw ArrayIndexOutOfBoundsException.

How many objects will be created in the memory?

  • One Student [] array object referenced by students
  • One Student object referenced by studentOne
  • One Student object referenced by students[1].

So, totally three objects in the memory and two reference variables will be created.

Two Dimensional (2D) Array

package com.ibytecode.arrays;
public class TwoDArray {
	public static void main(String[] args) {
		double[][] studentAvgs; //declaring a 2D array reference
		studentAvgs = new double[3][]; //creating an array object

		double[] student1Marks = new double[2];
		student1Marks[0] = 80.0;
		student1Marks[1] = 90.0;
		
		//1st element holds two double elements
		studentAvgs[0] = student1Marks; 
      
      		//2nd element holds an array of three double elements
		studentAvgs[1] = new double[3]; 
		studentAvgs[1][0] = 75.5;
		studentAvgs[1][1] = 65.5;
		studentAvgs[1][2] = 85.5;		
      
		//3rd element holds an array of one double element
		studentAvgs[2][0] = 95.5; 
	}
}

How many objects will be created in the memory?

  • One double[] [] array object referenced by studentAvgs
  • One double[] array object referenced by student1Marks
  • One double[] array object referenced by studentAvgs[1] with size 3.
  • One double[] array object referenced by studentAvgs[2] with size 1.

So, totally four objects in the memory and two reference variables will be created.

Initializing array elements using a loop

Here you can use length array variable to loop till the array size and assign values for each element.

Primitive Array

package com.ibytecode.arrays;
public class InitializingPrimitiveArray {
	public static void main(String[] args) {
		int[] numbers = new int[5];
		int j = 0;
		for(int i = 0; i < numbers.length; i++)	{
			numbers[i] = j += 10;
			System.out.print(numbers[i] + " ");
		}
	}
}

10 20 30 40 50

Reference Array

package com.ibytecode.arrays;
class Student {
	String name;
	int id;
}

public class InitializingReferenceArray {
	public static void main(String[] args) {
		Student[] students = new Student[3];
		System.out.println(students.length);
		for (int i = 0; i < students.length; i++) {
			students[i] = new Student();
		}
	}
}

Tags: , ,