Interesting facts about Array assignment in Java

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:

  1. 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.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on int type array
    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]);
        }
    }

    chevron_right

    
    

    Output:

    108
    
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on int type array
    public class Test {
    public static void main(String[] args)
        {
            int[] arr = new int[3];
      
            // Assigning long value to int type.
            arr[0] = 10l;
            arr[1] = 'a';
            byte b = 10;
            arr[2] = b;
      
            System.out.println(arr[0] + arr[1] + arr[2]);
        }
    }

    chevron_right

    
    

    Output:

    possible loss of precision.
    
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on char type array
    public class Test {
    public static void main(String[] args)
        {
            char[][] arr = new char[2][2];
      
            // Assigning long value to int type.
            arr[0][0] = 10l;
            arr[0][1] = 'a';
            char b = 10;
            arr[1][0] = b;
      
            // Assigning double value to char type
            arr[1][1] = 10.6;
        }
    }

    chevron_right

    
    

    Output:

    error: incompatible types: possible lossy conversion from long to char
    error: incompatible types: possible lossy conversion from double to char
    
  2. 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.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on Number type array
    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]);
        }
    }

    chevron_right

    
    

    Output:

    10
    20.5
    
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on Number type array
    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);
      
            // Here String is not the child class of Number class.
            num[2] = new String(“GFG”);
        }
    }

    chevron_right

    
    

    Output:

    Compile-time error(incompatible types)
    
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on Number type array
    public class Test {
    public static void main(String[] args)
        {
            Number[][] arr = new Number[2][2];
            arr[0][0] = 10l;
      
            // Assigning char to Number type array
            arr[0][1] = 'a';
            byte b = 10;
            arr[1][0] = b;
      
            // Assigning String to Number type array
            arr[1][1] = "GEEKS";
        }
    }

    chevron_right

    
    

    Output:

    error: incompatible types: char cannot be converted to Number
    error: incompatible types: String cannot be converted to Number
    
  3. Interface type array : For interface type array, we can assign elements as its implementation class objects.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on Interface type array
    public class Test {
    public static void main(String[] args)
        {
            Runnable[] run = new Runnable[2];
      
            // Thread class implements Runnable interface.
            run[0] = new Thread();
            run[1] = new Thread();
        }
    }

    chevron_right

    
    

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to illustrate the concept of array
    // element assignments on Interface type array
    public class Test {
    public static void main(String[] args)
        {
            Runnable[] run = new Runnable[2];
            run[0] = new Thread();
      
            // String class does not implements Runnable interface.
            run[1] = new String(“GFG”);
        }
    }

    chevron_right

    
    

    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

This article is contributed by Bishal Kumar Dubey. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up