熱門:瘦小腿瘦小腿瘦小腿

  1. 首頁
  2. 科技日報
  3. 科技

Java陣列的建立及使用

  • 小白兔

  • 2019-06-15 12:52:12

陣列是具有相同資料型別的一組資料的集合,作為物件允許使用new關鍵字進行記憶體分配。首先先來熟悉一下一維陣列的建立和使用。

宣告一維陣列,有下列兩種方式:

陣列元素型別 陣列名字;

陣列元素型別 陣列名字;

陣列元素型別據定了陣列的資料型別,它可以是java中任意的資料型別,宣告一維陣列,如:int arr; String str; int arr是宣告int型陣列,陣列中的每個元素都是int型數值,同理,str陣列中的每個元素都是String型別。

注:Java語言中宣告陣列時不能指定其長度(陣列中元素的個數),這是因為陣列是一種引用型別的變數,因此使用它定義一個變數時,僅僅表示定義了一個引用變數(也就是定一個了一個指標),這個引用變數還未指向任何有效的記憶體,所以定義陣列時不能指定陣列的長度。而且由於定義陣列僅僅只是定一個引用變數,並未指向任何有效的記憶體空間,所以還沒有記憶體空間來儲存陣列元素,因此這個陣列也不能使用,只有在陣列進行初始化後才可以使用。

為陣列分配記憶體空間的語法格式如下:

陣列名字=new 陣列元素的型別[陣列元素的個數];

例如,arr=new int[5];也可以在宣告陣列的同時為陣列分配記憶體,例如:int arr=new int[5];

附:一旦使用new關鍵字為陣列分配了記憶體空間,每個記憶體空間儲存的內容就是陣列元素的值,也就是陣列元素就有了初始值,即使這個記憶體空間儲存的內容是空,這個空也是一個值null。也就是說不可能只分配內容空間而不賦初始值,即使自己在建立陣列物件(分配內容空間)時沒有指定初始值,系統也會自動為其分配。

附:諸如基礎資料型別的包裝類,其預設的初始化值均為null,因為基礎資料型別的包裝類建立的陣列屬於引用陣列(物件陣列),物件陣列預設的初始化值都是null。

理解了一維陣列的宣告和建立,二維陣列的宣告和建立大同小異。二維陣列的宣告,int arr;二維陣列常用於表示表,第一個下標表示行,第二個下標表示列。直接為二維陣列分配記憶體,方法如下:a=new int[2][4];

為陣列分配記憶體之後,就要學習如何初始化陣列了。一維陣列的初始化形式有兩種:

int arr=new int{1,2,3,4};

或 int arr={1,2,3,4};二維陣列的初試化方法: int myarr={{12,2},{43,45}}; 注意,寫成intmyarr={12,2,43,45}是錯誤的。

接下來,通過兩段小的程式碼來解釋如何使用一維陣列和二維陣列。

第一個例子是使用一維陣列將1~12月各月的天數輸出。程式碼如下:

public class shuZu{ public static void main(String args){ int day=new int{31,28,31,30,31,30,31,31,30,31,30,31}; for (int i=0;i第二個例子是使用二維陣列將陣列中的元素輸出。程式碼如下:public class shuZu{ public static void main(String args){ int arr=new int{{1},{2,3},{4,5,6}}; for(int i=0;i簡單介紹了一下陣列的基本內容,接下來講解一下經典的陣列氣泡排序演算法。

氣泡排序原理:相鄰的兩位數做比較,1和2比較 2和3比較 3和4比較 4和5比較,這樣依次比較,如果前面的數小於後面的,不做操作,如果前面的數大於後面的數則調換兩個數字的位置,列1>2 則數字順序為2 1(注:此時的1 2 3 4 5代表索引而不是陣列),所以一層迴圈能挑出一個當前陣列參與比較數字中的最大的數字,並將其排到陣列的最末尾。

但是一層迴圈根本不夠用,只能挑選出一個最大數,陣列中其他的數字還沒有正確排序。

這裡遵循一個原理就是數組裡面有length個數字,要進行length-1次迴圈。至於為什麼要this.length-i,是因為第一次比較7個數字,第二個只要比較前6個就行了,第7個肯定是最大的了。這裡要著重強調為什麼會有2個for迴圈,為什麼要用this.length-i。

下面用一個列子來做詳細的說明:

var array = [8,7,9,2,3,5,6,1]; var temp = 0; function sort(arr){ for (var i = 0; i arr[j + 1]){ temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } } console.log('before: ' + array); //輸出[8,7,9,2,3,5,6,1] sort(array); console.log(' after: ' + array); //輸出[1,2,3,5,6,7,8,9]

陣列的內容就介紹到這裡了,大家可以自己動手實現一下,多多練習。

推薦您的文章

其他文章