學習Java,你必需要知道這些——Java數組

學習Java,你必需要知道這些——Java數組


目錄

  1. 數組的概念
  2. 數組的創建
  3. 數組的引用
  4. 數組的創建
  5. 數組元素的初始化
  6. 數組的使用
  7. 使用數組
  8. 數組的複製
  9. 多維數組
  10. 數組的概念

數組由同一類型的對象或者基本數據組成,並封裝在同一一個標識符(數組名稱)下。

數組是對象

動態初始化

可以賦值給Object類型的變量

在數組中可以調用類Object的所有方法

二每個數組都有一 個由public final修飾的成員變量: length,即數組含有元素的個數( length可以是正數或零)

數組元素

數組中的變量被稱作數組的元素

元素沒有名字,通過數組名字和非負整數下標值引用數組元素

數組的創建

數組的引用

聲明數組時無需指明數組元素的個數,也不為數組元素分配內存空間

不能直接使用,必須經過初始化分配內存後才能使用

數組聲明舉例:

括號在數組名前:Type[] arrayName;

<code>

int

[]

intArray

;

String

[]

stringArray

;/<code>

括號在數組名後:Type arrayName[];

<code>

int

intArray

[]

;

String

stringArray

[]

;/<code>

數組的創建

用關鍵字new構成數組的創建表達式,可以指定數組的類型和數組元素的個數。元素個數可以是常量也可以是變量。

基本類型數組的每個元素都是一個基本類型的變量;引用類型數組的每個元素都是對象的的引用。

數組的創建舉例:

直接創建

<code>

int

[] a; a =

new

int

[

10

]; String[] s; s =

new

String[

3

]/<code>

可以將數組的聲明和創建一併執行

<code>

int

a[]=

new

int

[

1

o];/<code>

可以在一條聲明語句中創建多個數組

<code>

String

[] s1=

new

String

[

3

], s2=

new

String

[

8

];/<code>

數組元素的初始化

聲明數組名時,給出了數組的初始值,程序便會利用數組初始值創建數組並對它的各個元素進行初始化

<code>

int

a[]={22,

33

,

44

,

55

};

/<code>

創建數組的時,如果沒有指定初始值,數組便被賦予默認值初始值。

基本類型數值數據 ,默認的初始值為0 ;

boolean類型數據,默認值為false;

引用類型元素的默認值為null。

數組的使用

使用數組

引用數組的一個元素:arrayName[index]

數組下標必須是int,short, byte,或者char。

下標從零開始計數。

<code>元素的個數即為數組的長度,可以通過arrayName.length得到。
元素下標最大值為length- 

1

,如果超過最大值,將會產生數組越界異常( ArrayIndexOutOfBoundsException ) 數組名是一個引用,以以下代碼為例:

public

class

Arrays

{

public

static

void

main

(

String []args

)

{

int

[] a1 = {

1

,

2

,

3

,

4

,

5

};

int

[] a2 = a1;

for

(

int

i=

0

; ifor(

int

i=

0

; iout.println(

"a1["

+ i +

"] = "

+ a1[i]); } } /<code>

運行結果:

學習Java,你必需要知道這些——Java數組

當運行int [] a2 = a1; 這一步時,並不是複製一個數組給a2,只是把引用a1賦值給引用a2。實際上a1,a2操作的是同一個數組。

數組的複製

使用方法System.arraycopy(src, srcPos, dest, destPos, length);

其中src為被複制數組,srcPos為被複制數組起始下標,dest為複製數組,destPos為複製數組下標,length為想要複製的長度。

以下代碼用於複製copyFrom從下標2開始的長度為7的數組。

<code>

public

class

ArraysCopy

{

public

static

void

main

(

String []args

)

{

char

[] copyFrom = {

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

};

char

[] copyTo =

new

char

[

7

]; System.arraycopy(copyFrom,

2

, copyTo,

0

,

7

); System.

out

.println(

new

String(copyTo)); } } /<code>

運行結果:

學習Java,你必需要知道這些——Java數組

多維數組

類似一維數組,以二維數組為例:

聲明

定義引用

<code>

int

[]

[]

a

;/<code>

定義引用+構造數組

<code>int[

][

] a = new int[

3

][

3

];/<code>

定義引用,構造數組,初始化數組元素。

<code>

int

[][] a ={{

1

,

2

,

3

},{

4

,

5

,

6

},{

7

,

8

,

9

}}; /<code>


二維數組的長度及每行的長度

二維數組的長度為行數

二維數組每一行的長度為每一行的列數

<code>

public

class

Arrays

{

public

static

void

main

(

String []args

)

{

int

[][] Array = {{

1

,

2

,

3

}, {

1

,

2

}, {

8

,

9

,

10

,

20

,

50

}}; System.

out

.println(

"Length of array is "

+ Array.length);

for

(

int

i=

0

; i<

3

; i++) System.

out

.println(

"Length of row["

+ i +

"] = "

+ Array[i].length); } } /<code>

運行結果:

學習Java,你必需要知道這些——Java數組


分享到:


相關文章: