1. 程式人生 > >《Java從入門到放棄》JavaSE篇:數組

《Java從入門到放棄》JavaSE篇:數組

java 數組

數組,就是一組數!!!

之前我們學習的變量只能保存一個數據,如果一個部門有50個員工的姓名要保存,怎麽辦?如果定義50個變量··················

String name1;

String name2;

......

......

String name49;

String name50;

,這畫面太美,我不敢看...技術分享

就算你保存下來了,現在我要找一個叫“羅大錘”的員工,那代碼怎麽寫呢?

if(name1.equals("羅大錘")){

}

if(name2.equals("羅大錘")){

}

......

if(name49.equals("羅大錘")){

}


if(name50.equals("羅大錘")){

}

,這代碼更美,看得要咽口水...技術分享


這時,數組出現了!!!他身披金甲聖衣,腳踏七彩祥雲.....,好吧,不廢話了,直接上代碼:

    public static void main(String[] args) {
        //定義保存50個員工姓名的
        String[] names = new String[50];
        //2.賦值
        names[0] = "張小萌"; 
        names[10] = "李二爺";
        names[20] = "羅大錘";
        //3.查找是否有員工叫羅大錘
        for (int i = 0; i < names.length; i++) {
            if(names[i]!=null && names[i].equals("羅大錘")){
                System.out.println("找到羅大錘了,他的編號是"+i);
                break;
            }
        }
    }

註意:

  1. 數組的好處是解決了相同類型變量的存儲問題。

  2. 定義數組與定義普通變量相比,多了一對[],並且數組的默認值,數值類型的值為0引用類型的值為null

  3. 後面new String[50],表示數組可以存儲數據的個數,如果在使用時超過了範圍則報錯。

  4. 賦值是names[0] = "xxx";,這兒的[0]表示下標(也叫偏移量)。因為數組在內存是一塊連續的內存空間,所以它是這樣滴技術分享,names默認指向第一個數據,所以它偏移0個位置就是第一個數據,偏移1個位置就是第二個數據。所以最後一個數據的下標是——49

    !!!

  5. 數組一般配合循環使用。



OK,數組就這樣了,多簡單個東西啊!!!當然,他還有很多細節的語法,比如定義時這樣寫才是正確的:

String[] names = new String[50];
String[] names2 = {"aaaa","bbb","ccc"};
String[] names3 = new String[]{"aaaa","bbb","ccc"};

最後最後最後,數組的幾個常用操作:

一、數組元素的遍歷

    public static void main(String[] args) {
        //定義數組並賦初值
        int[] nums = {234,64,13,2,7,6,4,334,34};
        //遍歷數組,length表示數組的元素個數
        for (int i = 0; i < nums.length; i++) {
            System.out.println("第"+(i+1)+"個元素的值為:"+nums[i]);
        }
    }

二、數組的排序

    public static void main(String[] args) {
        //定義數組並賦初值
        int[] nums = {234,64,13,2,7,6,4,334,34};
        //遍歷數組
        for (int i = 0; i < nums.length; i++) {
            System.out.println("第"+(i+1)+"個元素的值為:"+nums[i]);
        }
        //數組排序
        Arrays.sort(nums);
        System.out.println("排序後的結果:");
        //遍歷數組
        for (int i = 0; i < nums.length; i++) {
            System.out.println("第"+(i+1)+"個元素的值為:"+nums[i]);
        }
    }

結果:

技術分享

如果要降序排列的話,我們還可以自己寫代碼:

    public static void main(String[] args) {
        //定義數組並賦初值
        int[] nums = {234,64,13,2,7,6,4,334,34};
        //遍歷數組
        for (int i = 0; i < nums.length; i++) {
            System.out.println("第"+(i+1)+"個元素的值為:"+nums[i]);
        }
        //數組排序
        for (int i = 0; i < nums.length; i++) {
            for (int j = i+1; j < nums.length; j++) {
                if(nums[i]<nums[j]){
                    int tmp = nums[i];
                    nums[i] = nums[j];
                    nums[j] = tmp;
                }
            }
        }
        System.out.println("排序後的結果:");
        //遍歷數組
        for (int i = 0; i < nums.length; i++) {
            System.out.println("第"+(i+1)+"個元素的值為:"+nums[i]);
        }
    }


三、二維數組

前面所學的都是一維數組,比如保存一個部門的50名員工,就可以使用一維數組,如果公司有4個部門,人數最多的部門有50名員工,那需要這樣定義數組:

String[][] names = new String[4][50];

並且現在要使用嵌套的循環來進行遍歷了:

//外層遍歷部門數
for (int i = 0; i < names.length; i++) {
    //裏層遍歷每個部門的員工數
    for (int j = 0; j < names[i].length; j++) {
        System.out.println("這是部門"+(i+1)+"中的員工第"+(j+1)+"個員工");
    }
}


到這兒,數組是真滴結束了,老規矩,布置幾個練習吧:

  1. 輸入一個字符串,分別統計出其中英文大寫字母、小寫字母、數字以及其它字符的個數

  2. 輸入10個員工的薪水,求平均薪水和總薪水分別是多少,並統計5000以下有多少人,5000及以上的有多少人

  3. 已有一個已排好序的數組{23,34,55,87,108,210},現在輸入一個數,要求按原來排序的規律將它插入到數組中

  4. 隨機輸入5個整數存入一個數組,然後按從小到大的順序排序,並輸出


“軟件思維”博客地址:51CTO博客園,感興趣的小夥伴可以去看相關的其它博文。


本文出自 “軟件思維” 博客,請務必保留此出處http://softi.blog.51cto.com/13093971/1960246

《Java從入門到放棄》JavaSE篇:數組