Java基礎學習筆記 -- 9(數組)

來源:互聯網
上載者:User

標籤:java   程式   元素   複製   數組   截取   

1. 數組

    程式 = 演算法 + 資料結構;

    前面學過的if...else...、switch...、while迴圈、for迴圈等都是解決流程問題,即演算法方面的問題。

    資料結構:就是把資料按照特定的某種結構來儲存,而數組就是一種最基本的資料結構。

    1)數組的定義:

          相同資料類型的元素組成的集合,裡面只能存放相同的資料類型的元素。

          數組的元素按照線性排列,即 One by One。

          數組元素可以通過序號(下標)來識別,下標從0開始,最大下標是數組的長度-1。

    2)數組的聲明:

          //聲明整型數組arr,包含3個元素,每個元素都是int型

          int[] arr = new int[3];  //arr中的每一個元素都預設為0

          陣列變數arr不再是基本類型變數,而是參考型別的,引用一個記憶體位址,裡面存放的是數組元素。

    3)數組的初始化: 

          int[] arr = {1,4,7};  // 靜態初始化,只能在聲明變數的同時直接賦值

          int[] arr ;

          arr = new int[3];  // 動態初始化,可依次進行元素賦值

          int[] arr = new int[]{1,4,7};  // 動態初始化,可在定義時候直接賦值

    4)數組的訪問:

          通過下標來訪問元素 ,下標從0開始,到arr的長度(length)-1 

          int[] arr = {1,4,7,8};

          System.out.println(arr.length); // 長度4

          arr[0] = 100; // 給arr中的第1個數賦值為100

          System.out.println(arr[3]); // 輸出arr中的最後一個數

          arr[4] = 88; // 錯誤的,下標越界/超範圍

          // 迴圈給數組元素賦值

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

              arr[i] = 100;

          }

          // 迴圈輸出數組

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

              System.out.println(arr[i]);

          }

          // 倒序輸出數組

          for(int i=arr.length-1;i>=0;i--){

              System.out.println(arr[i]);

           }

    案例25:

        650) this.width=650;" style="width:558px;height:514px;" title="25 CJI`ZC5)J_WW.png" src="http://s3.51cto.com/wyfs02/M01/6D/17/wKiom1VcACrh5TdZAAKJU7yWKiQ800.jpg" width="579" height="544" alt="wKiom1VcACrh5TdZAAKJU7yWKiQ800.jpg" />

    6)數群組類型元素預設值

        根據數群組類型的不同,預設初始化值為:0(整數)、0.0(浮點數)、false(布爾類型)、

        \u0000(char字元類型,顯示無效果,相當於空格)、null(string類型,什麼都沒有,空值的意思)。


2. 數組工具類Arrays
    JDK提供的用來運算元組的工具類,提供了一些常用方法。

    int[] arr = {1,4,7,8};

    1)數組的輸出

        String str = Arrays.toString(arr);

    2)數組的複製:

        注意: Arrays.copyOf(源數組, 新長度),返回新數組

            當新長度等於源數組長度時候,就是複製;

            當新長度大於源數組長度時候,擴容,前面內容是源數組內容,多出的內容採用數組元素類型預設值填充;

            當新長度小於源數組長度時候,截取,從下標0開始截取一定新長度的元素;

    案例26:

        650) this.width=650;" style="width:665px;height:515px;" title="26 X%[8H8XCRX$9.png" src="http://s3.51cto.com/wyfs02/M02/6D/12/wKioL1VcAcPSqoMgAANsMrb_G2o292.jpg" width="680" height="528" alt="wKioL1VcAcPSqoMgAANsMrb_G2o292.jpg" />

    輸出結果:

        650) this.width=650;" title="26~M[W`RYL}O_7.png " src="http://s3.51cto.com/wyfs02/M00/6D/12/wKioL1VcAebyVfjcAADNCRsW9DQ968.jpg" alt="wKioL1VcAebyVfjcAADNCRsW9DQ968.jpg" />

        *************************************************************************************************************

          系統System還提供了一個數組的複製方法:

          System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

          src:源數組; srcPos:源數組要複製的起始位置; 

          dest:目標數組; destPos:目標數組放置的起始位置; 

          length:複製的長度。 

          只要下列任何情況為真,則拋出 IndexOutOfBoundsException 異常,並且不會修改目標數組:

            srcPos 參數為負。  

            destPos 參數為負。

            length 參數為負。

            srcPos+length 大於 src.length,即源數組的長度。

            destPos+length 大於 dest.length,即目標數組的長度。

        *************************************************************************************************************

    案例27:

        650) this.width=650;" style="width:667px;height:415px;" title="27 clipboard.png" src="http://s3.51cto.com/wyfs02/M01/6D/17/wKiom1VcAIuTiH0oAAKVaTcBFa4807.jpg" width="739" height="463" alt="wKiom1VcAIuTiH0oAAKVaTcBFa4807.jpg" />


3)數組的排序:

         Arrays.sort(arr),無傳回值

    案例28:

        650) this.width=650;" title="28 clipboard.png" src="http://s3.51cto.com/wyfs02/M02/6D/17/wKiom1VcAL6AJLNPAAJEDsdx3c8458.jpg" alt="wKiom1VcAL6AJLNPAAJEDsdx3c8458.jpg" />

    輸出結果:

        650) this.width=650;" title="28clipboard.png" src="http://s3.51cto.com/wyfs02/M00/6D/12/wKioL1VcAkvSZbvbAAB09VuluoM292.jpg" alt="wKioL1VcAkvSZbvbAAB09VuluoM292.jpg" />


3. 練習題

    案例29:

        650) this.width=650;" style="width:659px;height:544px;" title="29 clipboard.png" src="http://s3.51cto.com/wyfs02/M00/6D/12/wKioL1VcAmfyJ21YAAL6b6nY_DY123.jpg" width="699" height="565" alt="wKioL1VcAmfyJ21YAAL6b6nY_DY123.jpg" />

    案例30:

     650) this.width=650;" style="width:689px;height:516px;" title="30 clipboard.png" src="http://s3.51cto.com/wyfs02/M01/6D/12/wKioL1VcAoeCtiIVAAPjzTTii8o843.jpg" width="956" height="569" alt="wKioL1VcAoeCtiIVAAPjzTTii8o843.jpg" />


本文出自 “永遠年輕” 部落格,請務必保留此出處http://kingkongzhao.blog.51cto.com/6319491/1653094

Java基礎學習筆記 -- 9(數組)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.