- http://www.janeg.ca/scjp/lang/arrays.html
- arrays are Java objects
- all Java arrays are technically one-dimensional. Two-dimensional arrays are arrays of arrays.
- declaring an array does not create an array object or allocate space in memory; it creates a variable with a reference to an array
- array variable declarations must indicate a dimension by using []
Examples of valid array declarations: (JJ pg84) String[]s; String []s; String [] s; String [ ] s; // extra white space ignored String[] s; String[ ] s; // extra white space ignored String s[]; String s []; String s [ ]; // extra white space ignored String[] s[]; String[][]s; String s [] [ ]; // extra white space ignored
- declaring the size of the array with the following notation is illegal
String[5] s; // illegal declaration
- the standard convention for declaring arrays is:
String[] s; // one-dimensional array String[][] s; // two-dimensional array
Initializing arrays
class TestArray { int[] arr; // member declaration, initialized to 'null' public static void main(String[] args) { int[] arr1; // reference variable 'arr1' not initialized // compiles ok System.out.println("arr:" + new TestArray().arr); // compile error System.out.println("arr1: " + arr1); } }
- as arrays are allocated at runtime, you can use a variable to set their dimension
int arrSize = 100; String[] myArray = new String[arrSize];
- you can use curly braces {} as part of an array declaration to initialize the array
String[] oneDimArray = { "abc","def","xyz" };
Note |
- Curly braces {} can only be used in array declaration statements.
String[] s; // illegal initialization s = { "abc", "def", "hij"); int[] arr = new int[] {1,2,3}; // legal |
Initializing two-dimensional arrays
- the first dimension represents the rows, the second dimension, the columns
- curly braces {} may also be used to initialize two dimensional arrays. Again they are only valid in array declaration statements.
int[][] twoDimArray = { {1,2,3}, {4,5,6}, {7,8,9} };
- you can initialize the row dimension without initializing the columns but not vice versa
int[][] myArray = new int[5][]; // illegal int[][] myArray = new int[][5];
- the length of the columns can vary
class TestTwoDimArrays { // initialize # of rows static int [][] myArray = new int[3][]; public static void main(String[] args) { myArray[0] = new int[3]; // initialize # of cols myArray[1] = new int[4]; // in each row myArray[2] = new int[5]; for(int i=0; i<3; i="0;" i="0;">
Also see
Sun Tech Tip: Manipulating Java Arrays
No comments:
Post a Comment