Java心得--數組2__Java

來源:互聯網
上載者:User

1.  foreach迴圈

     使用foreach迴圈遍曆數組和集合元素時,無須獲得數組和集合的長度,無鬚根據索引來訪問數組元素和集合元素,系統自動遍曆數組和集合的每個元素。

µ   格式:
for(類型  變數名 : 數組名 | 集合名){
      //變數自動迭代訪問每個元素...
}

µ   注意:若數組中有n個元素,則該迴圈就迴圈n次;每一次迴圈都將數組中的一個元素賦給變數,迴圈體就對該變數進行操作。

例如:

String[] names ={"Georgianna","Jen","Simon"};

for (String name : names){

   System.out.println(name);

}

注意:

ü        使用foreach迴圈遍曆數組元素無須獲得數組長度,也無鬚根據索引來訪問數組元素。

ü        無須迴圈條件,無須迴圈迭代語句,這些部分都由系統來完成。自動迭代數組的每個元素,當每個元素被迭代一次後,foreach迴圈自動結束。

ü        當使用foreach迴圈時,通常不要對迴圈變數進行賦值,雖然沒有文法錯,但極容易引起錯誤。

ü         當使用foreach來迭代訪問數組元素時,迴圈變數相當於臨時變數,系統會把數組元素依次賦給這個臨時變數,但它並不是數組元素。改變迴圈變數的值,並不能改變元素的值。因此,如果希望改變數組元素的值,則不能使用這種foreach迴圈。

2.  多維陣列可以理解為由若干低維數組組成的數組,例如,多個一維數組可以組合而成為“二維數組”,多個二維數組組成三維數組…

   要訪問二維數組中的某個元素,需要知道該元素的位置(第幾行、第幾列)

3. 二維數組的聲明

格式:類型名 變數名[][];   或   類型名[][]  變數名;

例如,int[][] s;           Student s[][]; 

 (第一個角標(即第一個[])代表行,第二個代表列。)

   需注意:聲明了數群組類型變數,運行時系統只為引用變數分配引用空間,並沒有建立對象,也不會為數組元素分配空間,因此尚不能使用任何數組元素。(與一維數組一樣)

4.  二維數組對象的建立和初始化

µ     靜態初始化
     格式:類型[][]  數組名={{第0行初值},…,{第n-1行初值}};
     例如,int[][]s={{67,89,53},{77,98,68},{57,66,73},{80,88,94},{84,92,90}};

µ   動態初始化

ü     (第一種)直接為每一維分配空間
例如,int [][] s=new int[5][3];

ü     (第二種)從最高維(即行數)開始(必須從最高維開始),分別為每一維分配空間。(只指定行的個數,不指定列的個數)

例如,int[][] s=new int[3][];
s[0]=new int[3];  

s[1]=new int[3];

s[2]=new int[3];

不能這麼寫:

s[0]={1,2,3};

s[1]={1,2,3};

s[2]={1,2,3};

但可以這麼寫:

S[0]=new int[3];

s[0][0]=1;

s[0] [1]=2;

s[0] [2]=3;

也可以這麼寫:

s[0]=new int[]{1,2,3};

s[1]= new int[]{1,2,3};

s[2]= new int[]{1,2,3};

5.  注意: Java中允許二維數組中每行的元素個數不同,即每行的列數可以不同。

例如靜態初始化:int[][]={{1,2},{1,2,3},{1,2,3,4}}

例如動態初始化:int[][] s=new int[3][];

s[0]=new int[1];     s[1]=new int[2];     s[2]=new int[3];

6.  注意:使用二維數組s的length屬性可獲得二維數組高維(即行數)的大小;使用s[i].length屬性可獲得二維數組每一行的列數,即每一行的元素個數。

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

           for(int j=0;j<s[i].length;j++)

                  sum+=s[i][j];

  }

6.  在JDK的java.util包中定義的Arrays類提供了多種數組操作方法,實現了對數組元素的排序、填充、轉換、增強檢索和深度比較等功能,所有的這些方法都是static的。

¯      數組元素的排序方法
     原型:public static void sort(<type>[] a);
      例如,int[]a={4,12,0,-5,45,-56};
                 Arrays.sort(a);

     例6.7 數組的排序。

   注意:數組元素的排序通常指一維數值型數組元素按升序排序,偶爾也會涉及一維String數組的排序,多維和其他參考型別的數組排序實用意義不大。

 

聯繫我們

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