JAVA學習筆記總結(四):數組(Array)

一維數組

在Java中有兩種數據:primitive類型和objects.

數組屬於object類型,所以必須用new來創建數組, 同時數組具備一下特性:

1. 數組創建之後就不能改變大小

2. 數組創建之後,若沒有指定初始值,則依據數組類型的不同,會預設不同的初始值

int[] myArray;                      // 定義一個指向數據的refference

myArray = new int[100];     // 創建一個可容納100個元素的數組,並且用myArray指向它,默認所有的元素值被初始化成0

 

也可以在創建數組的同時進行初始化, 這種方式不用指定數組的長度:

int[] myArray = {0,3,6,9,12,15,18,21,24,27};

或者

int[] myArray = new int[] {0,3,6,9,12,15,18,21,24,27};

 

3. 數組有一個length屬性,可以取回數組中元素的個數

int arrayLength = myArray.length;

 

二維數組

二維數組用數組“名稱”與“兩個索引”來指定存取數組中的元素。

其定義方式與一維數組類似:

int[][] arr = {{1,2,3},

               {4,5,6}};

注意length所代表的長度,數組名後直接加上length(如arr.length),所指的是數組有幾行; 指定索引後加上length(如arr[0].length),指的是該行擁有的元素,也就是列的數目。

數組的複製

1. 使用System.arraycopy()方法

   System.arraycopy(來源,起始索引,目的,起始索引,複製長度);

   例如:

   int[] arr1 = {1,2,3,4,5};

   int[] arr2 = new int[5];

   System.arraycopy(arr1, 0, arr2, 0, arr1.length);

2. 在Java SE 6中,Arrays類新增了copyOf()方法,可以直接返回一個新的數組對象,而其中包括複製的內容

   例如:

   import java.util.Arrays;

   int[] arr1 = {1,2,3,4,5};

   int[] arr2 = Arrays.copyOf(arr1,arr1.length);

   Arrays的copyOf()方法返回的數組是新的數組對象,所以改變返回數組中元素的值不會影響原來數組中元素的值。copyOf()方法中第二個變量指定新數組的長度,如果新數組的長度超過原來數組的長度,則多出來的元素會保留數組默認值。

   除了copyOf()方法外,還有copyOfRange()方法,可以指定來源數組以及要複製的索引範圍:

   int arr1 = {1,2,3,4,5};

   int arr2 = Array.copyOfRange(arr1,1,4);  // 複製索引1開始到索引4(但不包括索引4)的元素,arr2的元素會是2,3,4

 

Array類

Array類位於java.util包中,它提供了幾個方法可以直接使用:

sort() - 對指定數組排序,使用的是快速排序法

binarySearch() - 讓你對已排序的數組進行二分查找,如果找到指定的值就返回該值所在的索引,否則就返回負值

fill() - Arrays.fill()將已創建數組的默認值改爲指定值

equals() - 比較兩個數組中的元素值是否全相等,如果相等返回true,否則返回false

 

foreach與數組

在Java SE 6中, foreach的語法爲:

int[] arr = {1,2,3,4,5};

for(int element : arr)

    System.out.println(element);

注意, element類型必須與數組元素類型相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章