The Essence of OOP using Java, Array Objects, Part 2
By Richard G. Baldwin
June 5, 2002
Complete Program Listing
A complete listing of the program is shown in Listing 26 below.
/*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.
# # #
|