工作小驛

          Ninja!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks
                今天我們講個(gè)不一樣的概念――數(shù)組,數(shù)組也沒什么不好理解的,就是一組數(shù)。不過這組數(shù)有點(diǎn)特性。今天我們的任務(wù)就是,了解這個(gè)有特性的這組數(shù)。下面我們具體講一下它有哪些特性:

          1、數(shù)組中的元素是同一類型。數(shù)組的長度在創(chuàng)建時(shí)確定,并且在創(chuàng)建后不變。解釋一下 聲明一個(gè)數(shù)組 int i[5]; 這就是int類型,名字叫i的數(shù)組。里面的數(shù)都必須是int類型。并且長度在創(chuàng)建時(shí)確定了是5。

               2、在java語言中,數(shù)組就是一個(gè)對象,所以創(chuàng)建數(shù)組與創(chuàng)建對象一樣也是用new關(guān)鍵字來創(chuàng)建。舉個(gè)例子,s = new char[20]; p = new Point[50];

               3、數(shù)組在被創(chuàng)建后,其元素被系統(tǒng)自動(dòng)初始化了。字符元素被初始化為‘\u0000’,而對于對象數(shù)組都被初始化為null。 如果你不初始化的話,在內(nèi)存是找不到它的位置的。

               4、數(shù)組中的第一元素記做第0個(gè),i[0]是數(shù)組i 的第一個(gè)元素。

               說了這么些,我們還是得練練啊

          實(shí)踐:

          public class TestArrays {

            public static void main(String[] args) {

              // 第1,2步: 聲明并初始化數(shù)組變量

              int[]  array1 = { 2, 3, 5, 7, 11, 13, 17, 19 };

              int[]  array2;



              // 第3步: 顯示數(shù)組初始化值

              System.out.print("array1 is ");

              printArray(array1);

              System.out.println();

              // 第4步: array2引用array1

              array2 = array1;

              // 更改array2

              array2[0] = 0;

              array2[2] = 2;

              array2[4] = 4;

              array2[6] = 6;

              // 打印array1

              System.out.print("array1 is ");

              printArray(array1);

              System.out.println();

              // 第5步: 聲明一個(gè)整數(shù)類型的二維數(shù)組

              int[][] matrix = new int[5][];

              // 第6步: 將這個(gè)矩陣構(gòu)成三角形

              for ( int i = 0; i < matrix.length; i++ ) {

                matrix[i] = new int[i];

                for ( int j = 0; j < i; j++ ) {

                 matrix[i][j] = i * j;

                }

              }

              // 第7步打印矩陣

              for ( int i = 0; i < matrix.length; i++ ) {

                System.out.print("matrix[" + i + "] is ");

                printArray(matrix[i]);

                System.out.println();

              }

            }

            public static void printArray(int[] array) {

              System.out.print('<');

              for ( int i = 0; i < array.length; i++ ) {

                // 打印一個(gè)元素

                System.out.print(array[i]);

                // 輸出最后一個(gè)元素的時(shí)候不輸出逗號

                if ( (i + 1) < array.length ) {

                 System.out.print(", ");

                }

              }

              System.out.print('>');

            }

          }  此源碼和其它例子打包下載
          http://www.100jq.com/upload/2007_07/07070716584024.rar

              在jdk5.0中,我們發(fā)現(xiàn)了一些更簡單的方法,打印一維數(shù)組時(shí),用toString(array)方法,

          打印二維數(shù)組時(shí),用deepToString(array)方法。這樣的話就剩了我們又是循環(huán)又是判斷的。我們看個(gè)例子吧:實(shí)踐:

          import java.util.Arrays;

          public class ArraysTester {

            private int[] ar;



            public ArraysTester(int numValues) {

              ar = new int[numValues];

              for (int i=0; i < ar.length; i++) {

                ar[i] = (1000 - (300 + i));

              }

            }

            public int[] get() {

              return ar;

            }

            public static void main(String[] args) {

              ArraysTester tester = new ArraysTester(50);

              int[] myArray = tester.get();

              // 比較兩個(gè)數(shù)組

              int[] myOtherArray = tester.get().clone();

              if (Arrays.equals(myArray, myOtherArray)) {

                System.out.println("這兩個(gè)數(shù)組是相等的!");

              } else {

                System.out.println("這兩個(gè)數(shù)組是不相等的!");

              }

              // 填上一些值

              Arrays.fill(myOtherArray, 2, 10, new Double(Math.PI).intValue());

              myArray[30] = 98;

              // 打印數(shù)組

              System.out.println("這是一個(gè)未排序的數(shù)組...");

              System.out.println(Arrays.toString(myArray));

              System.out.println();

              // 數(shù)組排序

              Arrays.sort(myArray);    

              // 打印被排序的數(shù)組 用toString()

              System.out.println("這是一個(gè)被排序的數(shù)組...");

              System.out.println(Arrays.toString(myArray));

              System.out.println();



              // 得到特殊值的索引

              int index = Arrays.binarySearch(myArray, 98);

              System.out.println("98 被定位在第 " + index + "個(gè)位置上");



              String[][] ticTacToe = { {"X", "O", "O"},

                                       {"O", "X", "X"},

                                       {"X", "O", "X"}};

              //打印二維數(shù)組用deepToString()

              System.out.println(Arrays.deepToString(ticTacToe));

              String[][] ticTacToe2 = { {"O", "O", "X"},

                                        {"O", "X", "X"},

                                        {"X", "O", "X"}};

              String[][] ticTacToe3 = { {"X", "O", "O"},

                                        {"O", "X", "X"},

                                        {"X", "O", "X"}};

              if (Arrays.deepEquals(ticTacToe, ticTacToe2)) {

                System.out.println("Boards 1 和 2 相等.");

              } else {

                System.out.println("Boards 1 和 2 不相等.");

              }

              if (Arrays.deepEquals(ticTacToe, ticTacToe3)) {

                System.out.println("Boards 1 和 3 are 相等.");

              } else {

                System.out.println("Boards 1 和 3 are 不相等.");

              }

            }

          }此源碼和其它例子打包下載
          http://www.100jq.com/upload/2007_07/07070716584024.rar
          posted on 2007-07-09 08:18 王君 閱讀(329) 評論(2)  編輯  收藏 所屬分類: J2SE

          Feedback

          # re: 全新java初學(xué)者實(shí)踐教程9(java SE5.0版)----jdk5的數(shù)組 2007-07-10 11:53 Persuse3
          這是百家拳軟件項(xiàng)目研究室,的原創(chuàng)教程,看全部教程請?jiān)L問
          <a href="http://www.100jq.com/list.aspx?cid=11">
          http://www.100jq.com/list.aspx?cid=11</a>  回復(fù)  更多評論
            

          # re: 全新java初學(xué)者實(shí)踐教程9(java SE5.0版)----jdk5的數(shù)組 2007-07-10 11:53 Persuse3
          http://www.100jq.com/list.aspx?cid=11  回復(fù)  更多評論
            

          主站蜘蛛池模板: 敖汉旗| 商河县| 五莲县| 图们市| 通许县| 田东县| 孟州市| 福海县| 南城县| 乐昌市| 共和县| 达拉特旗| 兴安盟| 雷山县| 鸡泽县| 阜宁县| 灌云县| 台山市| 仪征市| 龙泉市| 无为县| 乌拉特后旗| 泸水县| 乳源| 墨竹工卡县| 大厂| 冕宁县| 安阳市| 襄垣县| 楚雄市| 呼玛县| 岐山县| 辽宁省| 西充县| 左云县| 咸丰县| 威宁| 政和县| 德保县| 香格里拉县| 屯留县|