Java- Arrays / Chapter - 4 / Language Fundamental

javabychetan.blogspot.com

Array:-

An array is an index collection of fixed number of homogeneous data elements.
The main advantage of an array is we can represent a huge number of elements by a single variable.
But the main disadvantage of an array is it is fixed in size so that once the array is created then there is no chance of increasing the size of the array based on our requirement.
Hence to use an array, we should know the size in advance.

Array Declaration;-

How to declare an array ?
Let's see in how many ways we can declare an array.

1-D Array Declaration:-

int [ ]    x;       (Recommended to use)

int    [ ]x;

int      x[ ];

 Above all three declaration of the 1-D array is valid.If we are using other than this then we will get compile time error.


2-D Array Declaration:-

 int [ ][ ]     x;

 int          [ ][ ]x;

 int         x[ ][ ];

 int  [ ]   x [ ];

int [ ]        [ ]x;

int       [ ]x [ ];

Above all declaration of 2-D array is valid.If we are using other than this than we will get compile time error.

 

3-D Array Declaration:-

int  [ ][ ][ ]      x;

int       [ ][ ][ ]   x;

int      x[ ][ ][ ]  ;

int [ ] x[ ][ ]     ;

int [ ]      [ ][ ]x;

int [ ]      [ ] x[ ] ;

 int  [ ][ ]          [ ]x;

int  [ ][ ]      x[ ];

int [ ][ ]x[ ];

int          [ ]x [ ][ ];

Above all declaration of 3-D array is valid. If we are using other than this than we will get compile time error.


                    Array Creation In JAVA



How to Create an Array:-

Every Array in java is an object.
Hence we can create an array by using new operator or keyword.
example:-

    int [ ] a=new int [3] ;



array

 

Rules For Creating an Array:-

1.At the time of Array creation compulsory, we should specify the size otherwise, we will get compile time error.
example:-
 int [ ] x= new [ ];         (invalid)


 int [ ] x= new [ 6 ];      (valid)



2.It is legal to have an Array with size 0 in java.
example:-
 int [ ] x= new [ 0 ];      (valid)


3.If we are trying to specify array size with negative int value then we will get RunTime Exception saying
" NegativeArraySizeException". 

example:-
 int [ ] x= new [-3 ];       (invalid)

RuntimeException:-    " NegativeArraySizeException".  

But we won't get any Compile Time Error.The code will compile fine. 


4.To specify Array size allowed data types are the byte, short ,char ,int.
If we are trying to specify any other than that then we will get compile time array.

 example:-


int [ ] x= new [ 10];                   
(valid)
int [ ] x= new [ 'a'];                    (valid)

byte c=20
int [ ] x= new [ c];                      (valid)
short s=30;
int [ ] x= new [ s];                      (valid)



int [ ] x= new [ 10 L];                (invalid)
Compile Time Error:- Possible loss of precision
                                 found:-long
                                  required:-int 



5.The maximum Array size in java is 2147483647 which is nothing but the maximum value of int data type.

 int [ ] x= new [ 2147483647];              (valid)

 int [ ] x= new [ 2147483647];              (invalid)

Compile Time Error:Integer Number Too Large 


Note : In the 1st example of rule 5 we may get Runtime Exception if sufficient heap memory is not available.

                                           

 

2-D Array

To create a 2-D array or multidimensional Array we have to specify the base size of the Array.Because we are using new operator for allocating memory to array so Compulsory we should provide size at least base.For Array, creation java follows Array of Array Approach.


example 1:
    


If we are not Specifying the base size then we will get Compile time Error.
                                        x[ 0] =new int [2];
                                         x[1] =new int [3];


                           Memory representation of above example:

Javabychetan.blogspot.comexample 2:

                                           int [ ] [ ][ ] x =new int [ 3] [ ] [ ];        (valid)

In the above example, we provided the base value 3. Rest of we kept empty which is valid in java.
we won't get any compile time error or runtime exception;


example 3:
                         
           
                                     int [ ] [ ] x = new int [ ] [ 2];                (invalid)

In the above example we did' provide any base value,means base index is empty so it is wrong in java.
Hence we will get Compile time Error.




Que:
which of Array Declaration are valid?

int [ ] a =new int [ ];
int [ ] a =new int [ 3];
int [ ] [ ] a =new int [ ] [ ];
int [ ]  [ ]a =new int [ 2] [ ];
int [ ]  [ ]a =new int [ ] [ 4];
int [ ]  [ ]a =new int [ 2] [3 ];
int [ ]  [ ] [ ]a =new int [ 2] [ 4] [ 5];
int [ ]  [ ] [ ]a =new int [ ] [ 1] [2 ];
int [ ]  [ ] [ ]a =new int [ 2] [ ] [3 ];

 Now scroll down for check your answers;




Ans

int [ ] a =new int [ ];                             (invalid)
int [ ] a =new int [ 3];                            (valid)
int [ ] [ ] a =new int [ ] [ ];                     (invalid)
int [ ]  [ ]a =new int [ 2] [ ];                   (valid)
int [ ]  [ ]a =new int [ ] [ 4];                    (invalid)
int [ ]  [ ]a =new int [ 2] [3 ];                  (valid)
int [ ]  [ ] [ ]a =new int [ 2] [ 4] [ 5];       (valid)
int [ ]  [ ] [ ]a =new int [ 2] [ 4] [ 3];       (valid)
int [ ]  [ ] [ ]a =new int [ ] [ 1] [2 ];          (invalid)
int [ ]  [ ] [ ]a =new int [ 2] [ ] [3 ];        (valid)



Array Initialization:-

Once we create an array every element by default initialize by default values.

example 1:
         int [ ] x =new int [ 3];
          System.out.println(x[0]);         o/p is    0            (default initial value)
          System.out.println(x[1]);          o/p is    0            (default initial value)
          System.out.println(x[2]);         o/p is    0            (default initial value)
          System.out.println(x);               o/p is      [ I@3e25a5

surprise What is this number???
Remember Carefully that whenever we are trying to print any reference variable internally toString()
the method will be called which is by default implemented to return in the following from.


                Classname@hashcode_in_hexadecimalform
                      means 
                   [ is 1-D array
                   I is for Integer class
                   @3e25a5 hashcode (For every system it is different)

          List of corresponding classes:

javabychetan.blogspot.com
example 2:
            int [ ] [ ] x = new int [3] [ 2]
             System.out.println(x);               o/p is      [ [  I@3e15a9
             System.out.println(x[0]);               o/p is      [  I@5e25a5
             System.out.println(x[0][0]);               o/p is       0      (default initial value)

let take a look at the memory representation:-

javabychetan.blogspot.com

example 3:

int [ ] [ ] x= new int [ 3] [ ];

             System.out.println(x);                        o/p is      [ [  I@3e15a9
             System.out.println(x[0]);                   o/p is    null
             System.out.println(x[0][0]);               no o/p we will get "NullPointerException"
                                                                         because we are trying to operate on null.



Once we creates an array every array element by default initialize values ,if we are not satisfied with default values then we can override these values with our customized values.
for example:
int [ ] x= new int [3];
x[0]=40;
x[1]=50;
x[2]=60;
System.out.println(x[0])    o/p is         40;
System.out.println(x[1])    o/p is         50;
System.out.println(x[2])    o/p is         60;



   
 Shortcut method for Array Declaration,Creation,Initialization into a single line

1.For 1-D Array:-
We can declare ,create & initialize an array into a single line.
This is the short cut method what we are discussing here.
let's go...

example :
                  int [ ] x= new  int [3];
                        x[0]=10;
                        x[1]=20;
                        x[2]=30;


we can do this into a single line as follows:-

             int [ ] x={10,20,30};          (perfectly valid)


But if we want to use this shortcut compulsory we should perform all activities into a single line only.
if we are trying to do in multiple lines then we will get Compile-Time Error.

example:-
                int [ ] x ;                   Declaration is valid
                x={10,20,30}          But  Compile-Time Error : Illegal start of Expression




2.For 2-D Array:-
 we can use this shortcut method even for multidimensional array also.

             int [ ] [ ] x={{10,20},{30,40,50}};             (perfectly valid)





 3. For 3-D Array
 example:

         int [ ] [ ] [ ]   x = int {{{10,20,30},{40,50,60}},{{70,80},{90,100,110}}};



javabychetan.blogspot.com


Try to find out the outputs:-
 System.out.println(x[0][1][2]);
 System.out.println(x[1][0][1]);
 System.out.println(x[2][0][0]);
 System.out.println(x[1][2][0]);
 System.out.println(x[1][1][1]);



Now scroll down for answers:





 System.out.println(x[0][1][2]);           o/p is           60
 System.out.println(x[1][0][1]);           o/p is           80
 System.out.println(x[2][0][0]);         Runtime Exception :ArrayIndesxBoundException
 System.out.println(x[1][2][0]);         Runtime Exception :ArrayIndesxBoundException
 System.out.println(x[1][1][1]);          o/p is           100



 How to find length of an Array

We can find the length of an array by using length variable.

1. length  variable:-

length is a final variable applicable applicable for arrays.

length variable represent the size of an array.

 example:

                                   int [ ] x = new int [6]; 

 System.out.println(x.length);    o/p    is  6 .

                                int [ ] x =new int [10;

System.out.println(x.length);    o/p    is  10 .

System.out.println(x.length());  

                                            Compile-Time Error:cannot find symbol
                                                 Symbol: method length()
                                                  location: class int [ ]

But Do not Apply length( ) method here.Because length( ) is applicable for String.

2.length (  ) method:-

length( ) is a final method appicable for String Objects/

length( ) return the numbers of character present in the String.  

example:

String s="javabychetan";

System.out.println(s.length());   o/p is     12 

System.out.println(s.length);  

                                             Compile-Time Error:cannot find symbol
                                                    Symbol: variable length
                                                     location: class java.lang.String


 

Next:Chapter 5:Types of Variables      Back:Chapter 3 Data Types

Home:



No comments:

Post a Comment

Be the first to comment!

Don't just read and walk away, Your Feedback Is Always Appreciated. I will try to reply to your queries as soon as time allows.

Note:
1. If your question is unrelated to this article, please use our Facebook Page.
2. Please always make use of your name in the comment box instead of anonymous so that i can respond to you through your name and don't make use of Names such as "Admin" or "ADMIN" if you want your Comment to be published.

Regards,
JavaByChetan
Back To Home

Flipkart End Of Season Sale






© Copyright 2017 Javabychetan.blogspot.com