Java(第八章)

來源:互聯網
上載者:User

標籤:數組排序   結構   預設值   連續   ble   最大   移動   文法   數組下標   

第八章

一、        什麼是數組及其作用?

定義:具有相同資料類型的一個集合

作用:儲存連續的具有相同類型的資料

二、        java中如何聲明和定義數組

l  聲明和定義的文法:

        資料類型[ ] 數組名;( int[ ] nums ; )

或 資料類型 數組名[];  ( int nums[ ] ;)

l  為數組分配空間

數組名=new 資料類型[數組的長度]; ( nums=new int[5] ;)

l  聲明數組,同時分配空間

資料類型[]數組名= new 資料類型[數組的長度];

資料類型 數組名[]=new 資料類型[數組的長度];

          ( int[ ] nums=new int[5] ;)   ( int nums[ ]=new int[5] ;)

 

三、        如何讀取數組中的元素— 通過下標(索引)來擷取

下標(索引)是從0開始,最大下標為  數組長度-1

下標越界:ArrayIndexOutOfBoundsException

int類型的數組,每個元素的預設值為0

String類型的數組,每個元素的預設值為null

 

1、            擷取單個元素的值

資料類型 變數名=數組名[下標];

2、            迴圈讀取數組中的每個元素

數組的長度:數組名.length 屬性自動計算

for(int i=0;i<數組名.length ;i++){

              數組名[i];

}

四、如何給數組中的元素賦值

方式1(賦予數組固定值):

       聲明數組,分配空間,並賦值

(數組的長度由值的個數決定)

資料類型  數組名[]=new 資料類型[]{值1,值2…值n};

資料類型 []數組名={值1,值2…值n};

說明:[]中括弧可以放在數組名前面或後面

方式2:動態給數組賦值(從鍵盤中輸入)

          Scanner  input = new Scanner(System.in);

          for(int i=0;i<數組名.length ; i++){

                  String類型的數組名[i]= input.next ();    

                  int類型的數組名[i]= input.nextInt ();     

                  double類型的數組[i]=input.nextDouble();

}

 

五、數組排序問題

使用Arrays. sort(數組名);

實現對數組中的元素按升序或降序輸出

六、求最大值或最小值

實現思路:將數組中的第1個元素的值,假想成最大(小)值【賦值】;然後數組中的每個元素和假想的這個最大(小)數進行比較,如果數組中的某個元素的值,比最大(小)數要大(小),將該元素的值,儲存到假想的最大(小)值對應的變數中【給假想最值變數賦值】

 

七、求數組中最值的位置

1、            在迴圈的外面,定義變數k(賦值為0),用於儲存最值的下標

2、            在迴圈中,比較找出最值的同時,給變數k賦值

 

八、斐波那契數列

1,1,2,3,5,8,13,21,34……求第20個數位值?(使用迴圈)

規律:第i個 + 第(i+1)個 = 第(i+2)個

    步驟1:定義數組,數組長度為20

           int []nums=new int[20];

步驟2:根據規律,擷取第0個和第1個數的初值

           nums[0]=1;

           nums[1]=1;

步驟3:通過迴圈,給數組中的所有元素賦值

                  for ( int i=0;i<nums.length-2;i++){

                         nums [i+2]=nums[i]+nums[i+1];

                  }

                  for(int i=2;i<nums.length;i++){

                         nums[i]=nums[i-2]+nums[i-1];

                  }

步驟4:輸出nums[19]的值

 

九、(一、)已知一個數組,如何將一個【新的元素】插入到數組中的指定位置?

實現思路:

1、            定義一個長度為 【已知數組長度+1】的新數組YY

2、            使用第1個迴圈,將已知數組中的每個元素的值,儲存到新數組YY中

3、            使用第2個迴圈,將新數組YY中的元素,從倒數第2個(新數組YY的長度-2)元素開始,到指定的位置,依次向後移動1個位置

4、            直接將【新的元素】賦值給新數組YY中的指定元素(下標為指定位置)即可

5、            使用第3個迴圈,輸出新數組YY的值

 

(二、)已知1個按升序或降序排列的數組,向該數組中,插入一個新的值,插入成功後,數組仍然按照升序或降序排列?

1、            設定插入位置變數index的初始值為:數組長度-1;

2、            使用第1個迴圈,讓插入的數值和數組中的每個元素進行比較,如果插入的數值比數組中某個元素的值要大或小,把該元素的下標的值, 賦予插入位置變數index,同時終止迴圈

3、            使用第2個迴圈,移動位置,從【數組長度-2】到【插入位置變數index】

4、            將插入的值,儲存到數組下標為index的位置

5、            使用第3個迴圈,輸出數組所有元素的值,同時輸出新值插入的位置

 

--------------------------------------------------------------------------------

 

 [dream1]類型為int、char

 

 [dream2]case 結構可以有多個

 

 [dream3]程式跳出switch結構

 

 [dream4]常量的值不能相同

 

 [dream5]和if結構中的else作用相同

Java(第八章)

聯繫我們

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