工作小驛

          Ninja!

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

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

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

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

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

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

          實踐:

          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步: 聲明一個整數(shù)類型的二維數(shù)組

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

              // 第6步: 將這個矩陣構(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++ ) {

                // 打印一個元素

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

                // 輸出最后一個元素的時候不輸出逗號

                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ù)組時,用toString(array)方法,

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

          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();

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

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

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

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

              } else {

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

              }

              // 填上一些值

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

              myArray[30] = 98;

              // 打印數(shù)組

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

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

              System.out.println();

              // 數(shù)組排序

              Arrays.sort(myArray);    

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

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

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

              System.out.println();



              // 得到特殊值的索引

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

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



              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 王君 閱讀(324) 評論(2)  編輯  收藏 所屬分類: J2SE

          Feedback

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

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

          主站蜘蛛池模板: 西乡县| 武清区| 潞城市| 大埔区| 毕节市| 怀远县| 麻阳| 海晏县| 义马市| 千阳县| 凤城市| 鸡东县| 盖州市| 灵台县| 福泉市| 左权县| 隆林| 汤原县| 平泉县| 全南县| 洪江市| 宜君县| 右玉县| 合作市| 东明县| 洪江市| 闸北区| 高密市| 盐津县| 西吉县| 宿迁市| 治县。| 罗甸县| 彭阳县| 阿克陶县| 岱山县| 仲巴县| 开阳县| 嘉黎县| 府谷县| 衡阳市|