最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

第一種方式利用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)行,就會發(fā)現(xiàn)此時兩個數(shù)組的值是一樣的。這是傳遞的是引用(也就是地址),之后改變其中一個數(shù)組另一個也會跟著變化。

第三種方式:

利用Arrays自帶的copyof

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

第四種方式:

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

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

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

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

destPos+length-1位置一樣。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

destPos-

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

length-

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

拋出:IndexOutOfBoundsException-

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

ArrayStoreException-如果因?yàn)轭愋筒黄ヅ涠沟脽o法將src數(shù)組中的元素存儲到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語言中,由于把二維數(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];

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

public class Demo {
	public static void main(String[] args){
		// 第一個矩陣(動態(tài)初始化一個二維數(shù)組)
		int a[][] = new int[2][3];
		// 第二個矩陣(靜態(tài)初始化一個二維數(shù)組)
		int b[][] = { {1,5,2,8}, {5,9,10,-3}, {2,7,-5,-18} };
		// 結(jié)果矩陣
		int c[][] = new int[2][4];
		// 初始化第一個矩陣
		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)問題分析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

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

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

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

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

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)excel生成并且通過郵件發(fā)送的步驟詳解

    SpringBoot實(shí)現(xiàn)excel生成并且通過郵件發(fā)送的步驟詳解

    實(shí)際開發(fā)中,特別是在B端產(chǎn)品的開發(fā)中,我們經(jīng)常會遇到導(dǎo)出excel的功能,更進(jìn)階一點(diǎn)的需要我們定期生成統(tǒng)計(jì)報表,然后通過郵箱發(fā)送給指定的人員,?今天要帶大家來實(shí)現(xiàn)的就是excel生成并通過郵件發(fā)送,需要的朋友可以參考下
    2023-10-10
  • springBoot項(xiàng)目常用目錄解讀

    springBoot項(xiàng)目常用目錄解讀

    這篇文章主要介紹了springBoot項(xiàng)目常用目錄解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 解析springboot整合谷歌開源緩存框架Guava Cache原理

    解析springboot整合谷歌開源緩存框架Guava Cache原理

    本文主要為大家解析了springboot整合谷歌開源緩存框架Guava Cache的原理以及在實(shí)際開發(fā)過程中的使用,附含源碼,有需要的朋友可以參考下
    2021-08-08
  • 關(guān)于Springboot | @RequestBody 接收到的參數(shù)對象屬性為空的問題

    關(guān)于Springboot | @RequestBody 接收到的參數(shù)對象屬性為空的問題

    這篇文章主要介紹了關(guān)于Springboot | @RequestBody 接收到的參數(shù)對象屬性為空的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring @Order注解使用詳解

    Spring @Order注解使用詳解

    注解@Order或者接口Ordered的作用是定義Spring IOC容器中Bean的執(zhí)行順序的優(yōu)先級,而不是定義Bean的加載順序,Bean的加載順序不受@Order或Ordered接口的影響
    2022-08-08
  • SpringbBoot實(shí)現(xiàn)Tomcat集群的會話管理的詳細(xì)過程

    SpringbBoot實(shí)現(xiàn)Tomcat集群的會話管理的詳細(xì)過程

    文章介紹了如何使用Nginx作為負(fù)載均衡器和SpringSession配合Redis實(shí)現(xiàn)Tomcat集群的會話共享,確保跨節(jié)點(diǎn)訪問時會話的一致性和持久性,通過具體的步驟和示例代碼,感興趣的朋友一起看看吧
    2024-12-12
  • IDEA消除指定警告的兩種方法小結(jié)

    IDEA消除指定警告的兩種方法小結(jié)

    有時候IDEA會代碼中給出一些我們不需要的警告,看起來就很不美觀,本文主要介紹了IDEA消除指定警告的兩種方法,感興趣的可以了解一下
    2023-08-08
  • java開發(fā)之讀寫txt文件操作的實(shí)現(xiàn)

    java開發(fā)之讀寫txt文件操作的實(shí)現(xiàn)

    本篇文章介紹了,java開發(fā)之讀寫txt文件操作的實(shí)現(xiàn)。需要的朋友參考下
    2013-05-05
  • Springboot有效防止XSS攻擊的幾種方法

    Springboot有效防止XSS攻擊的幾種方法

    本文介紹了在SpringBoot項(xiàng)目中防止XSS攻擊的多種方法,包括輸入驗(yàn)證和過濾、輸出編碼、使用安全框架、使用模板引擎的自動轉(zhuǎn)義功能以及設(shè)置安全HTTP頭等,感興趣的可以了解一下
    2024-12-12
  • Java設(shè)計(jì)模式之java狀態(tài)模式詳解

    Java設(shè)計(jì)模式之java狀態(tài)模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之狀態(tài)模式定義與用法,結(jié)合具體實(shí)例形式詳細(xì)分析了Java狀態(tài)模式的概念、原理、定義及相關(guān)操作技巧,需要的朋友可以參考下
    2021-09-09

最新評論

伊春市| 永修县| 黄冈市| 绍兴县| 子长县| 库车县| 奉新县| 固安县| 札达县| 察哈| 陇西县| 新民市| 玛曲县| 民丰县| 濮阳市| 堆龙德庆县| 三门峡市| 化隆| 清流县| 应城市| 肥城市| 漳浦县| 昌邑市| 玉屏| 常宁市| 将乐县| 乐陵市| 河北省| 秦皇岛市| 合江县| 玉林市| 呼伦贝尔市| 怀安县| 蓝山县| 张家口市| 调兵山市| 鄂州市| 南汇区| 陆良县| 巨鹿县| 桦甸市|