天天看點

[Java 基礎]數組數組初始化數組指派數組的特點Arrays實用功能

數組初始化

定義數組文法格式

定義數組有兩種方式,如下兩種格式是等價的:

int[] a1;

int a1[];

 注:在C/C++中,不支援第一種格式。但是,推薦使用這種方式,因為這樣似乎更合理,聲明了一個整型數組類型的變量,名字為a1。

數組大小

 JAVA中,數組不允許在方括号中指定次元(即在方括号中指定數字來限制數組大小)。那麼,如何限定數組的大小呢?有以下兩種方式:

●使用初始化清單

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

注:初始化清單的最後一個逗号是可選的(這一特性使維護長清單變得更容易)。

對象數組

基本類型數組就是指儲存的資料類型為基本類型的數組,如int、long、double等。

對象數組是指儲存的資料類型為非基本類型的數組,如一些内置類或自定義類等。

對象數組和基本類型數組在使用上幾乎是相同的;唯一差別就是對象數組儲存的是引用,而基本類型數組直接儲存的是基本類型的值。

如下代碼中,聲明一個自定義類apple類型的數組。如果在數組的各元素還未初始化時就引用這些元素,運作時會報錯(代碼注釋處)。

class Apple {

}

Apple[] apples;

apples = new Apple[3];

//System.out.println(apples[0].toString());

for (int i = 0; i < 3; i++)

    apples[i] = new Apple();

System.out.println(apples[0].toString());

使用new int[]

int[] array;

array = new int[5];    //配置設定一個含有5個int型元素大小的數組,所有元素自動初始化為0

數組指派

不同于C/C++,在JAVA中,允許将一個數組整體指派給另一個數組。如下:

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

int[] array2;

array2 = array;

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

    array2[i] = array2[i] + 1; //給數組元素指派

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

    System.out.print(array[i] + " ");

運作結果:

2 3 4 5 6

這裡,其實是複制了一個引用。當array的引用複制給array2後,再對array2進行修改實際上等同于修改array。是以兩個數組的值同時發生改變。

注:和C/C++一樣,JAVA數組計數也是從第0個元素開始,是以下标最大值為length-1。如果超出邊界,編譯器會提示錯誤。

數組的特點

數組是一種效率最高的存儲和随機通路對象引用序列的方式。

如果和現在廣泛使用的容器相比較,它的優點在于通路效率比較高,缺點在于大小固定,沒有容器的大小伸縮性。

Arrays實用功能

在 java.util.Arrays 類中提供了一套用于數組的static實用方法。以下介紹幾個常用的基本方法:

方法名 作用
equals 比較兩個數組是否相等,deepEquals用于多元數組
fill 用同一個值填充各個位置。
sort 對數組排序
binarySearch 用于已經排序的數組中查找元素
toString 産生數組的String表示
hashCode 産生數組的散列碼