在Java語(yǔ)言中,我們可以使用變量來(lái)存儲(chǔ)一個(gè)信息。但如果我們有很多的信息,那么就要?jiǎng)?chuàng)建很多的變量來(lái)存儲(chǔ)值,顯然這樣做會(huì)顯得代碼非常的臃腫,不利于閱讀或管理。隨著處理的信息越來(lái)越多,我們就可以用一個(gè)數(shù)組來(lái)講這些數(shù)據(jù)類型一樣的數(shù)值存儲(chǔ)在一塊兒,在一定程度上縮短或簡(jiǎn)化代碼,提高應(yīng)用程序的效率。
一、數(shù)組的概念
1、簡(jiǎn)介
數(shù)組(Array),在 Java 中也屬于一種數(shù)據(jù)類型,區(qū)別于 int,String 之類的基本數(shù)據(jù)類型,數(shù)組是引用數(shù)據(jù)類型的一種。數(shù)組是有序數(shù)組的集合,里面的每個(gè)元素都必須具有相同的類型,可以用不同的數(shù)組名加上不同的下標(biāo)來(lái)定位數(shù)組中唯一的元素。
2、特性
在大部分計(jì)算機(jī)語(yǔ)言中,數(shù)組基本上都具有一下三大基本特性:
(1)一致性:數(shù)組中存儲(chǔ)的所有元素都必須是相同數(shù)據(jù)類型的。
(2)有序性:數(shù)組中的元素是有序的,可以通過(guò)數(shù)組下標(biāo)來(lái)訪問(wèn)的。
(3)不可變性:數(shù)組一旦初始化,數(shù)組中的元素個(gè)數(shù)就不可變了。
3、特點(diǎn)
(1)數(shù)組可分為一維數(shù)組、二維數(shù)組以及多維數(shù)組。
(2)數(shù)組中數(shù)值元素的默認(rèn)值是0,引用元素的默認(rèn)值是null。
(3)數(shù)組的索引都是從0開始,如果數(shù)組內(nèi)有n個(gè)元素,那么最大下標(biāo)就是(n-1)。
(4)數(shù)組元素的類型可以是任何的數(shù)據(jù)類型,包括數(shù)組這一個(gè)復(fù)合數(shù)據(jù)類型。
(5)數(shù)組類型是從抽象類 Array 派生的引用類型。
二、一維數(shù)組的聲明和分配
一維數(shù)組(one-dimensional array)本質(zhì)上是一組相同類型數(shù)據(jù)的線性集合,是數(shù)組中最簡(jiǎn)單的一種數(shù)組。
創(chuàng)建一維數(shù)組,聲明格式:
type[] arr; // 數(shù)據(jù)類型[] 數(shù)組名;
以上聲明格式中,數(shù)據(jù)類型既可以是基本數(shù)據(jù)類型,也可以是引用數(shù)據(jù)類型。數(shù)組名可以是任意合法的變量名。例如:
int[] score; // 數(shù)組內(nèi)數(shù)據(jù)類型為整型,用來(lái)存儲(chǔ)學(xué)生的成績(jī)
String[] name; // 數(shù)組內(nèi)數(shù)據(jù)類型為字符串型,用來(lái)存儲(chǔ)學(xué)生的名字
double[] hight; // 數(shù)組內(nèi)數(shù)據(jù)類型為浮點(diǎn)型,用來(lái)存儲(chǔ)學(xué)生的身高
值得注意的是,在聲明的時(shí)候,不需要給數(shù)組規(guī)定長(zhǎng)度,如:
int[10] score; // 這是錯(cuò)誤聲明
在聲明了數(shù)組之后,就可以給數(shù)組分配空間:
score = new int[10];
name = new String[20];
hight = new double[30];
當(dāng)然,也可以直接在聲明數(shù)組的時(shí)候,直接給數(shù)組進(jìn)行分配空間,具體格式如下:
type[] arr=new type[10]; // 數(shù)據(jù)類型[] 數(shù)組名=new 數(shù)據(jù)類型[10];
例如,聲明一個(gè) int 類型,長(zhǎng)度為5的數(shù)組 arr。
int[] arr=new int[5];
執(zhí)行 arr 數(shù)組后,在內(nèi)存中的格式如下:
注:在這里,一旦聲明了數(shù)組的大小,那么就不可改變。因此數(shù)組的長(zhǎng)度是必須要聲明的,不可少!
三、初始化一維數(shù)組的方法
已經(jīng)將數(shù)組聲明好了,也分配好了空間,那么就需要將數(shù)組應(yīng)用起來(lái)。
(1)使用 new 指定數(shù)組的大小后,并對(duì)數(shù)組進(jìn)行初始化賦值。
int[] arr=new int[5];
int[0] = 1;
int[1] = 2;
int[2] = 3;
int[3] = 4;
int[4] = 5;
此時(shí),arr 這個(gè)數(shù)組內(nèi)的每個(gè)位置都有一個(gè)相對(duì)應(yīng)的初始值了。
(2)直接通過(guò) new 直接指定數(shù)組中的值。
int[] arr=new int[]{1,2,3,4,5}sh
例如,聲明一個(gè) int 類型,長(zhǎng)度為5的數(shù)組 arr。
int[] arr=new int[5];
執(zhí)行 arr 數(shù)組后,在內(nèi)存中的格式如下:
注:在這里,一旦聲明了數(shù)組的大小,那么就不可改變。因此數(shù)組的長(zhǎng)度是必須要聲明的,不可少!
三、初始化一維數(shù)組的方法
已經(jīng)將數(shù)組聲明好了,也分配好了空間,那么就需要將數(shù)組應(yīng)用起來(lái)。
(1)使用 new 指定數(shù)組的大小后,并對(duì)數(shù)組進(jìn)行初始化賦值。
int[] arr=new int[5];
int[0] = 1;
int[1] = 2;
int[2] = 3;
int[3] = 4;
int[4] = 5;
此時(shí),arr 這個(gè)數(shù)組內(nèi)的每個(gè)位置都有一個(gè)相對(duì)應(yīng)的初始值了。
(2)直接通過(guò) new 直接指定數(shù)組中的值。
int[] arr=new int[]{1,2,3,4,5}
上面這個(gè)式子的表達(dá)意思如上面的一樣,同樣都是賦給了 arr 數(shù)組初始值。
值得注意的是,該式子不能既指定數(shù)組長(zhǎng)度,又要指定內(nèi)容。
int[] arr=new int[5]{1,2,3,4,5}; // 這是錯(cuò)誤寫法
(3)直接在數(shù)組聲明后指定數(shù)值。
int[] arr={1,2,3,4,5};
如果程序中已經(jīng)對(duì)數(shù)組聲明過(guò)了,那么只能使用上面兩種賦值方法。如果數(shù)組還未聲明,那么就可以使用第三種方法進(jìn)行賦值。但是要注意的是,第三種方法必須是聲明和初始化同步操作,不能分布,否則會(huì)報(bào)錯(cuò)。
int[] arr;
arr = {1,2,3,4,5};
// 該表示方法是錯(cuò)誤的
四、總結(jié)
以上就是關(guān)于 Java 數(shù)組的基本概念、特性和特點(diǎn)的介紹,以及數(shù)組中的一維數(shù)組的聲明,以及進(jìn)行初始化的方法詳解的全部?jī)?nèi)容。想要了解更多相關(guān) Java 數(shù)組其他分類的內(nèi)容,可以搜索W3Cschool里面的相關(guān)文章。如果本文對(duì)大家的學(xué)習(xí)有所幫助,還希望大家能夠多多關(guān)注和支持我們!