JAVA學習筆記——數組

來源:互聯網
上載者:User

JAVA學習筆記——數組

 

軟體版本:

  java version "1.7.0_05"
  eclipse

目錄:

  1. 聲明數組
  2. 執行個體化數組
  3. 初始化數組
  4. 二維數組
  5. length 屬性
  6. foreach 迴圈
  7. 參考資料

 1. 聲明數組

  JAVA 支援兩種格式聲明數組:

  type[] ArrayName;
  type ArrayName[];  // 不推存這樣子寫

  要注意的是,聲明後的數組還不能使用。它只聲明變數 ArrayName 為 type 類型的數組,並沒有指向任何有效記憶體空間(相當於指標),所以不能使用。在已定義流程中,也不可以在方括弧內指定數組的長度。

  數組的長度是在數組執行個體化或者數組初始化的過程中確定下來的,只有被執行個體化或者初始化後的數組才能夠使用。

2. 執行個體化數組

  所謂的執行個體化,其實就是為數組在堆中分配記憶體空間。格式為:

  1)
  type[] ArrayName;            // 聲明數組
  ArrayName = new type[length];      // 執行個體化數組,為數組分配記憶體

  2)
  type[] ArrayName = new type[length];  // 聲明並執行個體化數組

3. 初始化數組

  初始化數組其實不但將數組執行個體化,而且還賦予了數組初始值。格式為:

  1)
  type[] ArrayName;                      // 聲明數組
  ArrayName = new type[]{element1, element2, element3,...};  // 初始話數組

  2)
  type[] ArrayName = {element1, element2, element3,...};    // 定義並初始化數組·········(1)

  要注意的是,下面這樣子初始化是不行的。

  type[] ArrayName;                 // 定義(聲明)數組
  ArrayName = {element1, element2, element3,...};  // 注意與(1)的區別

  既指定長度,又進行賦值,也是不行的:

  1)
  type[] ArrayName;                          // 聲明數組
  ArrayName = new type[length]{element1, element2, element3, ...};  // 初始話數組

  2)
  type[] ArrayName = new type[length]{element1, element2, element3, ...};    // 定義並初始化數組

 4. 二維數組

  可以這樣子理解二維數組,就是建立一個數組用來儲存多個不同長度的一維數組。對於 n 維數組可以理解為,建立一個數組,儲存多個不同長度的 n-1 維數組。二維數組的聲明方法:

  type[][] ArrayName;
  type ArrayName[][];  // 還是不推薦這樣子寫
  type[] ArrayName[];  // 這麼怪的寫法也支援

  執行個體化:

  1)
  type[][] ArrayName = new type[length1][length2];  // 聲明並執行個體化
  2)
  type[][] ArrayName = new type[length1][];  // 只執行個體化第一級數組是可以的,但是不能只執行個體化第二級數組
  ArrayName[num1] = new type[length2];  // 執行個體化第二級數組
  ArrayName[num2] = new type[length3];  // 他們的長度可以不一樣

  初始化:

  type[][] ArrayName = new type[][]{{elements1...}, {elements2...}, {elements2...}, ...};
  type[][] ArrayName = {{elements1...}, {elements2...}, {elements2...}, ...};  // 也可以這樣子

  就這樣子看起來有點複雜,弄個例子容易明白點。

int[][] numbers = new int[][]{{2, 3}, {5, 10}, {20, 30}};String[][] str = new String[][]{new String[3], new String[]{"hello"}};

 5. length 屬性

  在 JAVA 中所有的數組都提供一個 length 屬性,表示數組的長度。我們可以通過它來遍曆整個數組。

for(int i = 0; i < ArrayName.length; i++){  System.out.println(ArrayName[i]);}

  你猜一下,如果 ArrayName 是一個二維數組將會怎麼樣?將會輸出第一級數組的長度。

6. foreach 迴圈

  foreach 迴圈,用來迴圈遍曆數組和集合會更加簡潔。格式:

  for(type variableName : ArrayName | collection)
  {
    // 每一次迴圈 variableName 都將擷取 ArrayName 中的一個元素,直到最後一個跳出迴圈。
  }

  例子:

 1 public class test { 2     public static void main(String[] args) { 3  4         int[][] numbers = new int[][]{{2, 3}, {20, 30, 40}, {200, 300}, {2000, 3000}}; 5          6         for(int i[] : numbers) 7         { 8             for(int j : i) 9             {10                 System.out.println(j);11             }12         }13     }14 }

  由於 numbers 是一個二維數組,所以第 6 行的 i 是一個一維數組。這樣子 i 才能指向每一個 nembers 的第一級數組。

7. 參考資料

[1]. 《瘋狂JAVA講義》李剛
[2]. http://android.yaohuiji.com/archives/3379

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.