更新時間:2020-11-03 17:22:57 來源:動力節點 瀏覽1125次
Java中經常會提到數組類型,因為java數組是類類型,當然,作為Java中常用的類Arrays,想要學習java數組類,我們必須先學好java數組,學起java數組類來才能事半功倍。本文就來和大家一起來學習Java數組類。
我們先來看看java數組類型變量的定義方法,我們還是通過偽代碼來演示:
type array[] = new type[size];
我們再和定義類對象的方法做個對比:
ClassName obj = new ClassName();
大家可以發現,它們很相似!其實在Java中數組類型就是一種類類型,該類型中最常用的它的成員變量:length。通過該成員變量,可以得到數組的大小,也就是偽代碼中size的值。另外,在定義數組時還有一種形式,我們通過偽代碼來演示:
type[] array = new type[size];
該形式是Java中推薦的形式,因為通過這種形式可以一目了然地看出是數組類型。在對比一下前面的定義形式,我們就會發現,前面的形式是在沿用C語言中數組的定義形式,其實這是Java為了考慮編程人員的習慣而保留的。
我們在定義數組類型的變量后,都會對該變量進行初始化操作。我們還是通過偽代碼的形式來演示數組初始化。
type array[] = {val1,val2,...};
這種方式和C語言中數組的初始化方式相同,其優點是自動指定數組的大小,并且會對數組中的成員進行初始化操作。
還有一種數組初始化方式:
type array[] = new type[size];
這種方式是典型的面向對象初始化方式,它會依據size的值來初始化數組的大小,并且把數組中每個元素初始化為類型的默認值。比如,type為int類型時,它的默認值為0,那么int類型的數組使用這種方式初始化時,數組中每個元素的初始值為0. 接下來再說一下這里的size,它可以是常量或者變量,甚至是0。這點是與C不同的,C中只能使用常量。
前面我們已經奠定了學習數組類Arrays的基礎,我們現在正式來講數組類Arrays。為了方便我們對數組的操作,Java還提供了Arrays類,該類提供了許多靜態方法,接下來我們介紹一些常用的靜態方法。 Arrays.fill(type[] arg0, type arg1); //填充數組,使用arg1來填充數組arg0
Arrays.sort(type[] arg0); //對數組成員排序,默認為升序。
Arrays.binarySearch(type[] arg0, type arg1);
//在數組成員中查找某個變量,在數組arg0的成員中查找變量arg1 這些靜態方法都是重載方法,可以對不同類型的數組進行操作。比如,我們把上面代碼中的type替換為int,那么它就可以對int類型的數組進行相關操作,同理把type替換為double,那么它就可以對double類型的數組進行相關操作。這里的type不但可以是基本的類型,而且可以為類類型。 說了這么多,我們動手來實踐一下。下面是程序的代碼,請大家參考: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類型的數組,然后使用了兩種初始化的數組的方法,并且把數組中每個成員的值都打印出來。接下來使用了`Arrays類`的靜態方法對數組進行填充,排序和查找操作。下面是程序的運行結果,請大家參考: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最后再說一下數組的復制,正常情況下可以使用等號復制或者給數組賦值(a1=a2)。但是我們不推薦這樣的操作,因為它相當于給一個數組添加了一個新的引用,常用的做法是使用Arrays類提供的靜態方法:copyOf(type[] a, int b)例子:a1=Arrays.copyOf(a2,a2.length)表示把數組a2中的內容復制給數組a1。雖然這兩個數組的內容相同,但是它們卻不同的數組。因為它們擁有自己的獨立的內存空間。
關于Java數組類Arrays的講解就到這里,我們不是淺嘗輒止,而是要舉一反三,通過本文對java數組類的學習延伸出其他的Java相關的知識點。結合本站的Java基礎教程加以融會貫通,相信你很快就能完全掌握Java數組類。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習