The Essence of OOP using Java, Array Objects, Part 2
Complete Program Listing
/*File Array07.java Copyright 2002, R.G.Baldwin This program illustrates three different ways to emulate a traditional rectangular array in Java. Two of those ways are essentially ragged arrays with equal-length sub arrays. The program also illustrates two ways to create ragged arrays in Java. Tested using JDK 1.3 under Win 2000. **************************************/ public class Array07{ public static void main( String[] args){ //Create an array structure that // emulates a traditional // rectangular array with two rows // and three columns. This // approach requires all rows to // be the same length. Object[][] v1 = new Object[2][3]; //Populate the array elements with // references to objects of type // Integer. for(int i=0;i<v1.length;i++){ for(int j=0;j<v1[i].length;j++){ v1[i][j] = new Integer((i+1)*(j+1)); }//end inner loop }//end outer loop //Display the array elements for(int i=0;i<v1.length;i++){ for(int j=0;j<v1[i].length;j++){ System.out.print( v1[i][j] + " "); }//end inner loop System.out.println();//new line }//end outer loop System.out.println();//new line //Create a ragged array with two // rows. The first row has three // columns and the second row has // three columns. The length of // each row could be anything, but // was set to three to match the // above array structure. Object[][] v2 = new Object[2][]; v2[0] = new Object[3]; v2[1] = new Object[3]; //Populate the array elements with // references to objects of type // Integer. for(int i=0;i<v2.length;i++){ for(int j=0;j<v2[i].length;j++){ v2[i][j] = new Integer((i+1)*(j+1)); }//end inner loop }//end outer loop //Display the array elements for(int i=0;i<v2.length;i++){ for(int j=0;j<v2[i].length;j++){ System.out.print( v2[i][j] + " "); }//end inner loop System.out.println();//new line }//end outer loop System.out.println();//new line //Create a one-dimensional array // of type Object, which contains // references to array objects of // type Object. The secondary // array objects could be of any // length, but were set to three // to match the above array // structure. Object[] v3 = new Object[2]; v3[0] = new Object[3]; v3[1] = new Object[3]; //Populate the array elements with // references to objects of type // Integer. for(int i=0;i<v3.length;i++){ for(int j=0; j<((Object[])v3[i]).length; j++){ ((Object[])v3[i])[j] = new Integer((i+1)*(j+1)); }//end inner loop }//end outer loop //Display the array elements for(int i=0;i<v3.length;i++){ for(int j=0; j<((Object[])v3[i]).length; j++){ System.out.print( ((Object[])v3[i])[j] + " "); }//end inner loop System.out.println();//new line }//end outer loop System.out.println();//new line //Create a ragged array with two // rows. The first row has two // columns and the second row has // three columns. Object[][] v4 = new Object[2][]; v4[0] = new Object[2]; v4[1] = new Object[3]; //Populate the array elements with // references to objects of type // Integer. for(int i=0;i<v4.length;i++){ for(int j=0;j<v4[i].length;j++){ v4[i][j] = new Integer((i+1)*(j+1)); }//end inner loop }//end outer loop //Display the array elements for(int i=0;i<v4.length;i++){ for(int j=0;j<v4[i].length;j++){ System.out.print( v4[i][j] + " "); }//end inner loop System.out.println();//new line }//end outer loop System.out.println();//new line //Create a one-dimensional array // of type Object, which contains // references to array objects of // type Object. The secondary // array objects could be of any // length, but were set to two and // three to match the ragged array // above. Object[] v5 = new Object[2]; v5[0] = new Object[2]; v5[1] = new Object[3]; //Populate the array elements with // references to objects of type // Integer. for(int i=0;i<v5.length;i++){ for(int j=0; j<((Object[])v5[i]).length; j++){ ((Object[])v5[i])[j] = new Integer((i+1)*(j+1)); }//end inner loop }//end outer loop //Display the array elements for(int i=0;i<v5.length;i++){ for(int j=0; j<((Object[])v5[i]).length; j++){ System.out.print( ((Object[])v5[i])[j] + " "); }//end inner loop System.out.println();//new line }//end outer loop System.out.println(); //Create a one-dimensional array // of type int, which contains // references to array objects of // type Object. The secondary // array objects could be of any // length. Object[] v6 = new Object[2]; v6[0] = new int[7]; v6[1] = new int[3]; //Now illustrate that the elements // of the leaves of a ragged array // implemented in this manner can // contain primitive values. // Populate the array elements with // type int. for(int i=0;i<v6.length;i++){ for(int j=0; j<((int[])v6[i]).length; j++){ ((int[])v6[i])[j] = (i+2)*(j+2); }//end inner loop }//end outer loop //Display the array elements for(int i=0;i<v6.length;i++){ for(int j=0; j<((int[])v6[i]).length; j++){ System.out.print( ((int[])v6[i])[j] + " "); }//end inner loop System.out.println();//new line }//end outer loop }//end main }//end class Array07 //===================================// Listing 26 |
About the author
Richard Baldwin is a college professor (at Austin Community College in Austin, TX) and private consultant whose primary focus is a combination of Java and XML. In addition to the many platform-independent benefits of Java applications, he believes that a combination of Java and XML will become the primary driving force in the delivery of structured information on the Web.Richard has participated in numerous consulting projects involving Java, XML, or a combination of the two. He frequently provides onsite Java and/or XML training at the high-tech companies located in and around Austin, Texas. He is the author of Baldwin's Java Programming Tutorials, which has gained a worldwide following among experienced and aspiring Java programmers. He has also published articles on Java Programming in Java Pro magazine.
Richard holds an MSEE degree from Southern Methodist University and has many years of experience in the application of computer technology to real-world problems.
# # #
Page 8 of 8
This article was originally published on June 5, 2002