原文首發(fā)于微信公眾號(hào):jzman-blog,歡迎關(guān)注交流!
創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都做網(wǎng)站、成都網(wǎng)站制作、電商網(wǎng)站制作開(kāi)發(fā)、小程序制作、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開(kāi)發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
本來(lái)打算溫習(xí)一下注解方面的內(nèi)容作為今天的推送,但是來(lái)不及寫了,那就一起來(lái)看一下數(shù)組,數(shù)組是用來(lái)存放一組具有相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),通過(guò)下標(biāo)來(lái)訪問(wèn)數(shù)組中的元素。
數(shù)組的定義主要有兩種,一種是先指定數(shù)組的大小,然后根據(jù)數(shù)組元素下標(biāo)進(jìn)行賦值,另一種是直接創(chuàng)建一個(gè)數(shù)組并進(jìn)行賦值,具體如下:
//1.定義大小為10的數(shù)組
int[] arrayA = new int[10];
int arrayB[] = new int[10];
arrayA[0] = 1;
arrayB[1] = 2;
//2.定義數(shù)組并賦值
int[] arrayC = {1,2,3,4,5};
Java 中的數(shù)組實(shí)際上是一個(gè)類,因此兩個(gè)數(shù)組變量可以指向同一個(gè)數(shù)組,觀察如下代碼:
int[] arrayD = {1,1,1};
int[] arrayE = arrayD;
arrayD[0] = 2;
System.out.println(arrayE[0]);
顯然,執(zhí)行上述代碼結(jié)果肯定是 2,上述代碼中,將數(shù)組 arrayD 的值指向 arrayE,其本質(zhì)是兩個(gè)數(shù)組 arrayD、arrayE 指向了同一塊數(shù)組空間,當(dāng)修改了 arrayD 中某一元素的值,相應(yīng)的 arrayE 中對(duì)應(yīng)元素值也發(fā)生了變化,具體如下圖所示:
注意:當(dāng)數(shù)組作為方法的參數(shù)傳遞時(shí),相當(dāng)于傳遞的是數(shù)組的引用,因此在方法中對(duì)數(shù)組的操作也會(huì)影響到原來(lái)的數(shù)組,這一點(diǎn)非常重要。
為了得到兩個(gè)數(shù)組元素的每個(gè)值都相同的元素,我們可以使用 Java 提供的 arraycopy() 來(lái)實(shí)現(xiàn),具體如下:
int[] arrayD = {1,1,1};
int[] arrayF = new int[3];
/復(fù)制數(shù)組
System.arraycopy(arrayD, 0, arrayF, 0, 3);
System.out.println(Arrays.toString(arrayF));
顯然,上述代碼執(zhí)行完數(shù)組 arrayF 的值為 1、1、1,如果間接修改了數(shù)組 arrayD 中數(shù)組元素的值,則完數(shù)組 arrayF 的值為 2、1、1,這是結(jié)合上下文獲得的結(jié)果。
下面順便說(shuō)一下 arraycopy 方法參數(shù)的含義,具體如下:
/**
* 復(fù)制數(shù)組
* @param src:原數(shù)組
* @param srcPos:原數(shù)組開(kāi)始被復(fù)制的位置
* @param dest:目標(biāo)數(shù)組
* @param destPos:目標(biāo)數(shù)組開(kāi)始的位置
* @param length:目標(biāo)數(shù)組的長(zhǎng)度
*/
public static void arraycopy?(Object src,
int srcPos,
Object dest,
int destPos,
int length) {
}
數(shù)組中好像要注意的東西也就這么多了,當(dāng)然還有其他關(guān)于操作數(shù)組的 API ,上面遇到數(shù)組之間的賦值影響了原來(lái)數(shù)組的值,這也是之前自己沒(méi)有注意到的,今天就寫這么多。
可以關(guān)注微信公眾號(hào):jzman-blog獲取最新更新,歡迎一起交流學(xué)習(xí)!