CS 123 - Arrays of Objects

Here is an illustration of the memory map for the following code fragment, which uses a one-dimensional and a two-dimensional array of objects. Notice how the objects are not "in" the arrays. The array elements actually hold references to the objects. This is different than an array of primitive data types (like int) where the array elements actually hold the data.

    // create a one-dimensional array of Color objects
    Color[] myArray = new Color[4];   // an array of 4 Color references

    // now create the objects for the array of objects
    myArray[0] = new Color(12, 21,  0);
    myArray[1] = new Color( 0, 12, 21);
    myArray[2] = new Color(12,  0, 21);
    myArray[3] = myArray[0];  // reuse one of the previous elements

    // create a two-dimensional array of Color objects
    Color[][] myArray2 = new Color[3][2];   // an array of 6 Color references

    // now create the objects for the array of objects
    myArray2[0][0] = new Color(56, 65,  0);
    myArray2[0][1] = new Color( 0, 56, 65);
    myArray2[1][0] = new Color(56,  0, 65);
    myArray2[1][1] = myArray2[0][1]; // reuse one of the previous elements
    myArray2[2]    = myArray2[0];    // reuse one of the previous rows


Return to the CS 123 lecture page.


compliments and criticisms