Arrays, Strings & Wrapper Classes

  ----------Arrays-----------

Arrays are objects in Java that store multiple variables of the same type.
Arrays can hold either primitives or object references, but the array itself will always be an object on the heap, even if the array is declared to hold primitive elements.
-----Array Declaration-----

  Arrays are declared by stating the type of element the array will hold, which can be an object or a primitive, followed by square brackets to the left or right of the identifier.
Declaring an Array of Primitives
int key [ ];    // Square brackets after name (legal but less readable)

int[ ] key;     // Square brackets before name (recommended)
---Array Construction--
Constructing an array means creating the array object on the heap—in other words, doing a new on the array type.
To create an array object, Java needs to know how much space to allocate on the heap, so you must specify the size of the array at construction time.
Constructing One-Dimensional Arrays
  int[] testScores;      // Declares the array of integer
  testScores = new int[4];  //constructs an array and assigns it the testScores variable
     
Memory Representation 
The preceding code puts a new object on the heap—an array object holding four elements—with each element containing an int with the default value 0.
         

Always Remember
Arrays must always be given a size at the time they are constructed.
The JVM needs the size to allocate the appropriate space on the heap for the new array object.
  Ex:-
        int[] carList = new int[]; // will not compile; needs a size

Array Initialization----
int[] x = new int[5];
x[4] = 2; // OK, the last element is at index 4
x[5] = 3;

What Happen when we tries to access an out of range array index?
  if an array has five elements, trying to access the [5] element will raise an  
   
ArrayIndexOutOfBoundsException, because in an array of five elements, the legal
    index values are 0, 1, 2, 3, and 4.

   You also might see an attempt to use a negative number as an array index.
int [] z = new int[2];
int y = -3;
z[y] = 4;    // Runtime exception.; y is a negative number
   
 Multi-dimensional Arrays--------

Multidimensional arrays, are simply arrays of arrays.
A two-dimensional array of type int is really an object of type int array (int []), with each element in that array holding a reference to another int array.
The second dimension holds the actual int primitives.
To declare a multidimensional array variable,specify each additional index using another set of square brackets.



Multi-dimensional Array Declaration------

 
n-dimensional Arrays are declared by stating the type of element the array will hold, which can be an object or a primitive, followed by ‘n’ square brackets to the left or right of the identifier.
Declaring a 2-dim Array of Primitives
int myArray [ ][ ];   // Square brackets after name (legal but less readable)
int[ ][ ] myArray;   // Square brackets before name (recommended)

Declaration:-
The following declares a two-dimensional array variable called myArray.
         int myArray[][] = new int[3][3];
Initialization:-
int [ ] a={5,6,7};
myArray[0]={1,2,3};
myArray[1]=new int[ ]{3,4,5};
myArray[2]=a;
myArray[0][0] = 3;
myArray[0][1] = 2;
myArray[0][2] = 1;


Memory representation of a 2-D array:------

     


Jagged Array / ZigZag Array:-

Declaration :
                int [ ][ ] myArray ;   
Construction :
          myArray = new int[3][ ];
Note :-
Only the first brackets are given a size. That’s acceptable in Java, since the JVM needs to know only the size of the object assigned to the variable.

Initialization :
   int [ ] a=new int[]{9,8,5};
  myArray[0] = new int[]{6,7};
  myArray[1] =a;



Memory Representation of a Jagged Array:-
           :
Declaring, Constructing, and Initializing:-

Two different array-specific syntax shortcuts to both initialize and construct in a single statement.
To declare, create, and initialize in one statement as follows:
          int x = 9;
          int [ ] myArray = {3,6,x,8};
Shortcut syntax with jagged arrays:
  Ex:-
      int[ ][ ] scores = {{5,2,4,7}, {9,2}, {3,4}};
            scores[0] // an array of four ints
          scores[1] // an array of 2 ints
            scores[2] // an array of 2 ints
          scores[0][1] // the int value 2
             scores[2][1] // the int value 4
  


2 comments: