亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java編程中拷貝數(shù)組的方式及相關(guān)問(wèn)題分析

 更新時(shí)間:2017年11月17日 15:05:26   作者:h2內(nèi)存數(shù)據(jù)庫(kù)  
這篇文章主要介紹了java編程中拷貝數(shù)組的方式及相關(guān)問(wèn)題分析,分享了Java中數(shù)組復(fù)制的四種方式,其次對(duì)二維數(shù)組的簡(jiǎn)單使用有一段代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。

JAVA數(shù)組的復(fù)制是引用傳遞,而并不是其他語(yǔ)言的值傳遞。

這里介紹java數(shù)組復(fù)制的4種方式極其問(wèn)題:

第一種方式利用for循環(huán):

int[] a={1,2,4,6};
int length=a.length;
int[] b=new int[length];
for (int i = 0; i < length; i++) {
	b[i]=a[i];
}

第二種方式直接賦值:

int[] array1={1,2,4,6};
int[] array2=a;

這里把a(bǔ)rray1數(shù)組的值復(fù)制給array2,如果你這樣去運(yùn)行,就會(huì)發(fā)現(xiàn)此時(shí)兩個(gè)數(shù)組的值是一樣的。這是傳遞的是引用(也就是地址),之后改變其中一個(gè)數(shù)組另一個(gè)也會(huì)跟著變化。

第三種方式:

利用Arrays自帶的copyof

int copy[] = Arrays.copyOf(a, a.length);

第四種方式:

這里再介紹一下System.arraycopy這個(gè)函數(shù),從JAVAAPI中找了一段。大家看一下。

publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)從指定源數(shù)組中復(fù)制一個(gè)數(shù)組,復(fù)制從指定的位置開始,到目標(biāo)數(shù)組的指定位置結(jié)束。從src引用的源數(shù)組到dest引用的目標(biāo)數(shù)組,數(shù)組組件的一個(gè)子序列被復(fù)制下來(lái)。被復(fù)制的組件的編號(hào)等于length參數(shù)。源數(shù)組中位置在srcPos到srcPos+length-1之間的組件被分別復(fù)制到目標(biāo)數(shù)組中的destPos到destPos+length-1位置。

如果參數(shù)src和dest引用相同的數(shù)組對(duì)象,則復(fù)制的執(zhí)行過(guò)程就好像首先將srcPos到srcPos+length-1位置

的組件復(fù)制到一個(gè)帶有l(wèi)ength組件的臨時(shí)數(shù)組,然后再將此臨時(shí)數(shù)組的內(nèi)容復(fù)制到目標(biāo)數(shù)組的destPos到

destPos+length-1位置一樣。

If如果dest為null,則拋出NullPointerException異常。

如果src為null,則拋出NullPointerException異常,并且不會(huì)修改目標(biāo)數(shù)組。

否則,只要下列任何情況為真,則拋出ArrayStoreException異常并且不會(huì)修改目標(biāo)數(shù)組:

src參數(shù)指的是非數(shù)組對(duì)象。

dest參數(shù)指的是非數(shù)組對(duì)象。

src參數(shù)和dest參數(shù)指的是那些其組件類型為不同基本類型的數(shù)組。

src參數(shù)指的是具有基本組件類型的數(shù)組且dest參數(shù)指的是具有引用組件類型的數(shù)組。

src參數(shù)指的是具有引用組件類型的數(shù)組且dest參數(shù)指的是具有基本組件類型的數(shù)組。

否則,只要下列任何情況為真,則拋出IndexOutOfBoundsException異常,并且不會(huì)修改目標(biāo)數(shù)組:

srcPos參數(shù)為負(fù)。

destPos參數(shù)為負(fù)。

length參數(shù)為負(fù)。

srcPos+length大于src.length,即源數(shù)組的長(zhǎng)度。

destPos+length大于dest.length,即目標(biāo)數(shù)組的長(zhǎng)度。

否則,如果源數(shù)組中srcPos到srcPos+length-1位置上的實(shí)際組件通過(guò)分配轉(zhuǎn)換并不能轉(zhuǎn)換成目標(biāo)數(shù)組的組

件類型,則拋出ArrayStoreException異常。在這種情況下,將k設(shè)置為比長(zhǎng)度小的最小非負(fù)整數(shù),這樣就

無(wú)法將src[srcPos+k]轉(zhuǎn)換為目標(biāo)數(shù)組的組件類型;當(dāng)拋出異常時(shí),從srcPos到srcPos+k-1位置上的源數(shù)組

組件已經(jīng)被復(fù)制到目標(biāo)數(shù)組中的destPos到destPos+k-1位置,而目標(biāo)數(shù)組中的其他位置不會(huì)被修改。(因

為已經(jīng)詳細(xì)說(shuō)明過(guò)的那些限制,只能將此段落有效地應(yīng)用于兩個(gè)數(shù)組都有引用類型的組件類型的情況。)

參數(shù):src-源數(shù)組。

srcPos-源數(shù)組中的起始位置。

dest-目標(biāo)數(shù)組。

destPos-

目標(biāo)數(shù)據(jù)中的起始位置。

length-

要復(fù)制的數(shù)組元素的數(shù)量。

拋出:IndexOutOfBoundsException-

如果復(fù)制會(huì)導(dǎo)致對(duì)數(shù)組范圍以外的數(shù)據(jù)的訪問(wèn)。

ArrayStoreException-如果因?yàn)轭愋筒黄ヅ涠沟脽o(wú)法將src數(shù)組中的元素存儲(chǔ)到dest數(shù)組中。

NullPointerException-如果src或dest為null。

二維數(shù)組

不想匆匆了事,那就再介紹一下二維數(shù)組的聲明、初始化和引用吧。

二維數(shù)組的聲明、初始化和引用與一維數(shù)組相似:

int intArray[ ][ ] = { {1,2}, {2,3}, {4,5} };
int a[ ][ ] = new int[2][3];
a[0][0] = 12;
a[0][1] = 34;
// ......
a[1][2] = 93;

Java語(yǔ)言中,由于把二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的,所以不要求二維數(shù)組每一維的大小相同。例如:

int intArray[ ][ ] = { {1,2}, {2,3}, {3,4,5} };
int a[ ][ ] = new int[2][ ];
a[0] = new int[3];
a[1] = new int[5];

【示例】通過(guò)二維數(shù)組計(jì)算兩個(gè)矩陣的乘積。

public class Demo {
	public static void main(String[] args){
		// 第一個(gè)矩陣(動(dòng)態(tài)初始化一個(gè)二維數(shù)組)
		int a[][] = new int[2][3];
		// 第二個(gè)矩陣(靜態(tài)初始化一個(gè)二維數(shù)組)
		int b[][] = { {1,5,2,8}, {5,9,10,-3}, {2,7,-5,-18} };
		// 結(jié)果矩陣
		int c[][] = new int[2][4];
		// 初始化第一個(gè)矩陣
		for (int i=0; i<2; i++)
		for (int j=0; j<3 ;j++)
		a[i][j] = (i+1) * (j+2);
		// 計(jì)算矩陣乘積
		for (int i=0; i<2; i++){
			for (int j=0; j<4; j++){
				c[i][j]=0;
				for (int k=0; k<3; k++)
				c[i][j] += a[i][k] * b[k][j];
			}
		}
		// 輸出結(jié)算結(jié)果
		for (int i=0; i<2; i++){
			for (int j=0; j<4; j++)
			System.out.printf("%-5d", c[i][j]);
			System.out.printlnwww.ymzxrj.com();
		}
	}
}

運(yùn)行結(jié)果:

25 65 14 -65
50 130 28 -130

總結(jié)

以上就是本文關(guān)于java編程中拷貝數(shù)組的方式及相關(guān)問(wèn)題分析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

java數(shù)組復(fù)制的四種方法效率對(duì)比

Java中的數(shù)組復(fù)制(clone與arraycopy)代碼詳解

淺談java中String的兩種賦值方式的區(qū)別

如有不足之處,歡迎留言指出,期待您的寶貴意見(jiàn)!

相關(guān)文章

  • Java this 關(guān)鍵字的使用方法詳解

    Java this 關(guān)鍵字的使用方法詳解

    這篇文章主要介紹了Java this 關(guān)鍵字的使用方法詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家徹底理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • 詳解如何通過(guò)Java實(shí)現(xiàn)壓縮PDF文檔

    詳解如何通過(guò)Java實(shí)現(xiàn)壓縮PDF文檔

    PDF文檔是我們?nèi)粘^k公中使用最頻繁的文檔格式。但因?yàn)榇蠖鄶?shù)PDF文檔都包含很多頁(yè)面圖像或大量圖片,這就導(dǎo)致PDF文檔過(guò)大,處理起來(lái)較為麻煩。本文將介紹如何通過(guò)Java應(yīng)用程序壓縮PDF文檔,需要的可以了解一下
    2022-12-12
  • Java中定時(shí)任務(wù)的全方位場(chǎng)景實(shí)現(xiàn)思路分析

    Java中定時(shí)任務(wù)的全方位場(chǎng)景實(shí)現(xiàn)思路分析

    在開發(fā)過(guò)程中,根據(jù)需求和業(yè)務(wù)的不同經(jīng)常會(huì)有很多場(chǎng)景需要用到不同特性的定時(shí)任務(wù),本文將針對(duì)這些場(chǎng)景,提供不同的一個(gè)實(shí)現(xiàn)思路,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2023-12-12
  • Java設(shè)計(jì)模式之策略模式示例詳解

    Java設(shè)計(jì)模式之策略模式示例詳解

    策略模式屬于Java?23種設(shè)計(jì)模式中行為模式之一,該模式定義了一系列算法,并將每個(gè)算法封裝起來(lái),使它們可以相互替換,且算法的變化不會(huì)影響使用算法的客戶。本文將通過(guò)示例詳細(xì)講解這一模式,需要的可以參考一下
    2022-08-08
  • springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制(踩坑經(jīng)驗(yàn))

    springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制(踩坑經(jīng)驗(yàn))

    這篇文章主要介紹了springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制,本文給大家分享小編實(shí)際開發(fā)中的一點(diǎn)踩坑經(jīng)驗(yàn),內(nèi)容簡(jiǎn)單易懂,需要的朋友可以參考下
    2020-07-07
  • myeclipse開發(fā)servlet_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    myeclipse開發(fā)servlet_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    MyEclipse,是在eclipse基礎(chǔ)上加上自己的插件開發(fā)而成的功能強(qiáng)大的企業(yè)級(jí)集成開發(fā)環(huán)境,主要用于Java、Java EE以及移動(dòng)應(yīng)用的開發(fā)。下面這篇文章主要給大家介紹了關(guān)于myeclipse開發(fā)servlet的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • Java中的6種請(qǐng)求方式的示例詳解

    Java中的6種請(qǐng)求方式的示例詳解

    這篇文章主要詳細(xì)介紹了Java中的6種請(qǐng)求方式,@RequestParam、@PathVariable、@MatrixVariable、@RequestBody、@RequestHeader和@CookieValue的基本知識(shí)、詳細(xì)分析以及示例,需要的朋友可以參考下
    2024-07-07
  • Spring?Boot的無(wú)縫銜接實(shí)踐案例

    Spring?Boot的無(wú)縫銜接實(shí)踐案例

    在快速迭代的軟件開發(fā)環(huán)境中,無(wú)縫銜接是提升開發(fā)效率、降低維護(hù)成本、增強(qiáng)系統(tǒng)穩(wěn)定性的關(guān)鍵,本文將深入解析Spring?Boot無(wú)縫銜接的幾大優(yōu)勢(shì),并通過(guò)實(shí)際案例和深入分析,展示這些優(yōu)勢(shì)如何在項(xiàng)目中發(fā)揮作用
    2024-08-08
  • 關(guān)于LinkedList集合對(duì)元素進(jìn)行增查刪操作

    關(guān)于LinkedList集合對(duì)元素進(jìn)行增查刪操作

    LinkedList集合內(nèi)部包含有兩個(gè)Node類型的first和last屬性維護(hù)一個(gè)雙向循環(huán)鏈表,在鏈表中的每一個(gè)元素都使用引用的方式來(lái)記住它的前一個(gè)元素和后一個(gè)元素,從而可以將所有的元素彼此連接起來(lái),需要的朋友可以參考下
    2023-04-04
  • 為什么不要使用 async void的原因分析

    為什么不要使用 async void的原因分析

    這篇文章主要介紹了為什么不要使用 async void的原因分析及解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04

最新評(píng)論