更新時(shí)間:2020-11-03 17:22:57 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1306次
Java中經(jīng)常會(huì)提到數(shù)組類(lèi)型,因?yàn)閖ava數(shù)組是類(lèi)類(lèi)型,當(dāng)然,作為Java中常用的類(lèi)Arrays,想要學(xué)習(xí)java數(shù)組類(lèi),我們必須先學(xué)好java數(shù)組,學(xué)起java數(shù)組類(lèi)來(lái)才能事半功倍。本文就來(lái)和大家一起來(lái)學(xué)習(xí)Java數(shù)組類(lèi)。
我們先來(lái)看看java數(shù)組類(lèi)型變量的定義方法,我們還是通過(guò)偽代碼來(lái)演示:
type array[] = new type[size];
我們?cè)俸投x類(lèi)對(duì)象的方法做個(gè)對(duì)比:
ClassName obj = new ClassName();
大家可以發(fā)現(xiàn),它們很相似!其實(shí)在Java中數(shù)組類(lèi)型就是一種類(lèi)類(lèi)型,該類(lèi)型中最常用的它的成員變量:length。通過(guò)該成員變量,可以得到數(shù)組的大小,也就是偽代碼中size的值。另外,在定義數(shù)組時(shí)還有一種形式,我們通過(guò)偽代碼來(lái)演示:
type[] array = new type[size];
該形式是Java中推薦的形式,因?yàn)橥ㄟ^(guò)這種形式可以一目了然地看出是數(shù)組類(lèi)型。在對(duì)比一下前面的定義形式,我們就會(huì)發(fā)現(xiàn),前面的形式是在沿用C語(yǔ)言中數(shù)組的定義形式,其實(shí)這是Java為了考慮編程人員的習(xí)慣而保留的。
我們?cè)诙x數(shù)組類(lèi)型的變量后,都會(huì)對(duì)該變量進(jìn)行初始化操作。我們還是通過(guò)偽代碼的形式來(lái)演示數(shù)組初始化。
type array[] = {val1,val2,...};
這種方式和C語(yǔ)言中數(shù)組的初始化方式相同,其優(yōu)點(diǎn)是自動(dòng)指定數(shù)組的大小,并且會(huì)對(duì)數(shù)組中的成員進(jìn)行初始化操作。
還有一種數(shù)組初始化方式:
type array[] = new type[size];
這種方式是典型的面向?qū)ο蟪跏蓟绞?,它?huì)依據(jù)size的值來(lái)初始化數(shù)組的大小,并且把數(shù)組中每個(gè)元素初始化為類(lèi)型的默認(rèn)值。比如,type為int類(lèi)型時(shí),它的默認(rèn)值為0,那么int類(lèi)型的數(shù)組使用這種方式初始化時(shí),數(shù)組中每個(gè)元素的初始值為0. 接下來(lái)再說(shuō)一下這里的size,它可以是常量或者變量,甚至是0。這點(diǎn)是與C不同的,C中只能使用常量。
前面我們已經(jīng)奠定了學(xué)習(xí)數(shù)組類(lèi)Arrays的基礎(chǔ),我們現(xiàn)在正式來(lái)講數(shù)組類(lèi)Arrays。為了方便我們對(duì)數(shù)組的操作,Java還提供了Arrays類(lèi),該類(lèi)提供了許多靜態(tài)方法,接下來(lái)我們介紹一些常用的靜態(tài)方法。 Arrays.fill(type[] arg0, type arg1); //填充數(shù)組,使用arg1來(lái)填充數(shù)組arg0
Arrays.sort(type[] arg0); //對(duì)數(shù)組成員排序,默認(rèn)為升序。
Arrays.binarySearch(type[] arg0, type arg1);
//在數(shù)組成員中查找某個(gè)變量,在數(shù)組arg0的成員中查找變量arg1 這些靜態(tài)方法都是重載方法,可以對(duì)不同類(lèi)型的數(shù)組進(jìn)行操作。比如,我們把上面代碼中的type替換為int,那么它就可以對(duì)int類(lèi)型的數(shù)組進(jìn)行相關(guān)操作,同理把type替換為double,那么它就可以對(duì)double類(lèi)型的數(shù)組進(jìn)行相關(guān)操作。這里的type不但可以是基本的類(lèi)型,而且可以為類(lèi)類(lèi)型。 說(shuō)了這么多,我們動(dòng)手來(lái)實(shí)踐一下。下面是程序的代碼,請(qǐng)大家參考:public class ArrayExam{
public static void main(String args[])
{
int [] array1 = {1,2,3,9,8,7} ;
int array2[] = new int[6];
System.out.println("arrar1 length:"+array1.length);
System.out.println("arrar2 length:"+array2.length);
System.out.print("array1 members: ");
for(int i=0; i<array1.length; p="" ++i)<="">
System.out.print(array1[i]+" ");
System.out.println();
System.out.print("array2 members: ");
for(int i=0; i<array1.length; p="" ++i)<="">
System.out.print(array2[i]+" ");
System.out.println();
Arrays.fill(array2, 6);
Arrays.sort(array1);
System.out.print("array1 members: ");
for(int i=0; i<array1.length; p="" ++i)<="">
System.out.print(array1[i]+" ");
System.out.println();
System.out.print("array2 members: ");
for(int i=0; i<array1.length; p="" ++i)<="">
System.out.print(array2[i]+" ");
System.out.println();
if( 1== Arrays.binarySearch(array1,6) )
System.out.println("6 is found in array1");
else
System.out.println("6 is not found in array1");
}
}
在上面的程序中,我們定義的int類(lèi)型的數(shù)組,然后使用了兩種初始化的數(shù)組的方法,并且把數(shù)組中每個(gè)成員的值都打印出來(lái)。接下來(lái)使用了`Arrays類(lèi)`的靜態(tài)方法對(duì)數(shù)組進(jìn)行填充,排序和查找操作。下面是程序的運(yùn)行結(jié)果,請(qǐng)大家參考:arrar1 length:6
arrar2 length:6
array1 members: 1 2 3 9 8 7
array2 members: 0 0 0 0 0 0
array1 members: 1 2 3 7 8 9
array2 members: 6 6 6 6 6 6
6 is not found in array1最后再說(shuō)一下數(shù)組的復(fù)制,正常情況下可以使用等號(hào)復(fù)制或者給數(shù)組賦值(a1=a2)。但是我們不推薦這樣的操作,因?yàn)樗喈?dāng)于給一個(gè)數(shù)組添加了一個(gè)新的引用,常用的做法是使用Arrays類(lèi)提供的靜態(tài)方法:copyOf(type[] a, int b)例子:a1=Arrays.copyOf(a2,a2.length)表示把數(shù)組a2中的內(nèi)容復(fù)制給數(shù)組a1。雖然這兩個(gè)數(shù)組的內(nèi)容相同,但是它們卻不同的數(shù)組。因?yàn)樗鼈儞碛凶约旱莫?dú)立的內(nèi)存空間。
關(guān)于Java數(shù)組類(lèi)Arrays的講解就到這里,我們不是淺嘗輒止,而是要舉一反三,通過(guò)本文對(duì)java數(shù)組類(lèi)的學(xué)習(xí)延伸出其他的Java相關(guān)的知識(shí)點(diǎn)。結(jié)合本站的Java基礎(chǔ)教程加以融會(huì)貫通,相信你很快就能完全掌握J(rèn)ava數(shù)組類(lèi)。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)