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