In this tutorial on Java Arrays, we will see to how to assign an array – both Primitive Array assignment and Reference Array assignment.
Java Primitive Array Assignment
If an array is declared as int (int[]) then you can assign another int array of any size but cannot assign anything that is not an int array including primitive int variable. Following is an example of int[] array assignment.
package com.ibytecode.arrays; public class PrimitiveArrayAssignments { public static void main(String[] args) { int i = 10; int[] numbers; int[] marks = {80,90,70,60}; char[] letters = new char[4]; numbers = marks; //numbers = letters; //No.ERROR //numbers = i; //No. ERROR } }
Java Reference Array Assignment
If an array is declared as a reference type then you can assign any other array reference which is a subtype of the declared reference type, i.e.) it should pass the “IS-A relationship”. Following is an example of reference array assignment.
class Animal { } class Cat extends Animal { } class Dog extends Animal { } class Person{} public class ReferenceArrayAssignment { public static void main(String[] args) { Animal[] animals; Cat[] cats = new Cat[5]; Dog[] puppies = new Dog[5]; Person[] persons; animals = cats; //OK. Cat IS-A Animal animals = puppies; //OK. Dog IS-A Animal //animals = persons; // No. ERROR. Person IS NOT A Animal } }
Similarly, if an array is declared as interface type then it can reference an array of any type that implements that interface.
package com.ibytecode.arrays; interface LivingBeing {} class Animal implements LivingBeing {} class Person implements LivingBeing {} class Plant implements LivingBeing {} class Vehicle {} public class ReferenceArrayAssignment { public static void main(String[] args) { LivingBeing[] lives = new LivingBeing[5]; Animal[] animals = new Animal[4]; Person[] persons = new Person[5]; Plant[] plants = new Plant[3]; Vehicle[] vehicles; lives = animals; //OK. Animal IS-A LivingBeing lives = persons;//OK. Person IS-A LivingBeing lives = plants;//OK. Plant IS-A LivingBeing //lives = vehicles; //NO. ERROR. Vehicle IS NOT A LivingBeing } }