Interesting facts about Array assignment in Java
Last Updated :
06 Jan, 2019
Prerequisite : Arrays in Java
While working with arrays we have to do 3 tasks namely declaration, creation, initialization or Assignment.
Declaration of array :
int[] arr;
Creation of array :
// Here we create an array of size 3
int[] arr = new int[3];
Initialization of array :
arr[0] = 1;
arr[1] = 2;
arr[3] = 3;
int intArray[]; // declaring array
intArray = new int[20]; // allocating memory to array
Some important facts while assigning elements to the array:
- For primitive data types : In case of primitive type arrays, as array elements we can provide any type which can be implicitly promoted to the declared type array. Apart from that, if we are trying to use any other data-types then we will get compile-time error saying possible loss of precision.
public class Test {
public static void main(String[] args)
{
int [] arr = new int [ 3 ];
arr[ 0 ] = 1 ;
arr[ 1 ] = 'a' ;
byte b = 10 ;
arr[ 2 ] = b;
System.out.println(arr[ 0 ] + arr[ 1 ] + arr[ 2 ]);
}
}
|
Output:
108
public class Test {
public static void main(String[] args)
{
int [] arr = new int [ 3 ];
arr[ 0 ] = 10l;
arr[ 1 ] = 'a' ;
byte b = 10 ;
arr[ 2 ] = b;
System.out.println(arr[ 0 ] + arr[ 1 ] + arr[ 2 ]);
}
}
|
Output:
possible loss of precision.
public class Test {
public static void main(String[] args)
{
char [][] arr = new char [ 2 ][ 2 ];
arr[ 0 ][ 0 ] = 10l;
arr[ 0 ][ 1 ] = 'a' ;
char b = 10 ;
arr[ 1 ][ 0 ] = b;
arr[ 1 ][ 1 ] = 10.6 ;
}
}
|
Output:
error: incompatible types: possible lossy conversion from long to char
error: incompatible types: possible lossy conversion from double to char
- Object type Arrays : If we are creating object type arrays then the elements of that arrays can be either declared type objects or it can be child class object.
public class Test {
public static void main(String[] args)
{
Number[] num = new Number[ 2 ];
num[ 0 ] = new Integer( 10 );
num[ 1 ] = new Double( 20.5 );
System.out.println(num[ 0 ]);
System.out.println(num[ 1 ]);
}
}
|
Output:
10
20.5
public class Test {
public static void main(String[] args)
{
Number[] num = new Number[ 3 ];
num[ 0 ] = new Integer( 10 );
num[ 1 ] = new Double( 20.5 );
num[ 2 ] = new String(“GFG”);
}
}
|
Output:
Compile-time error(incompatible types)
public class Test {
public static void main(String[] args)
{
Number[][] arr = new Number[ 2 ][ 2 ];
arr[ 0 ][ 0 ] = 10l;
arr[ 0 ][ 1 ] = 'a' ;
byte b = 10 ;
arr[ 1 ][ 0 ] = b;
arr[ 1 ][ 1 ] = "GEEKS" ;
}
}
|
Output:
error: incompatible types: char cannot be converted to Number
error: incompatible types: String cannot be converted to Number
- Interface type array : For interface type array, we can assign elements as its implementation class objects.
public class Test {
public static void main(String[] args)
{
Runnable[] run = new Runnable[ 2 ];
run[ 0 ] = new Thread();
run[ 1 ] = new Thread();
}
}
|
public class Test {
public static void main(String[] args)
{
Runnable[] run = new Runnable[ 2 ];
run[ 0 ] = new Thread();
run[ 1 ] = new String(“GFG”);
}
}
|
Output:
Compile-time error(Incompatible types)
Explanation: In the above program, we are giving elements of String class that’s cause compile time error. Because we know that String does not implements Runnable interface.
Reference : https://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...