翻看印象筆記發(fā)現(xiàn)自己整理過(guò)arraycopy()這樣一個(gè)方法,碼字放到這里:
System.arraycopy()是一個(gè)靜態(tài)方法,用來(lái)實(shí)現(xiàn)重置數(shù)組操作
數(shù)組復(fù)制方法調(diào)用和參數(shù)列表:
System.arraycopy(src, srcPos, dest, destPos, length);
src:原數(shù)組
srcPos:原數(shù)組的開(kāi)始位置
dest:目標(biāo)數(shù)組
destPos:目的數(shù)組的開(kāi)始位置
length:復(fù)制長(zhǎng)度
數(shù)組復(fù)制代碼示例:
1
2
3
4
|
//originalArray 數(shù)組全部復(fù)制到targetArray數(shù)組 int [] originalArray = new int [ 10 ]; int [] targetArray = new int [ 10 ]; System.arraycopy(originalArray, 0 , targetArray, 0 , originalArray.length); |
通過(guò)入?yún)⒌拈L(zhǎng)度 限制是全部復(fù)制還是部分復(fù)制
重置數(shù)組大小代碼示例:
1
2
3
4
5
|
int [] originalArray = new int [ 10 ]; int [] temp = new int [originalArray.length + 10 ]; System.arraycopy(originalArray, 0 , temp, 0 , originalArray.length); //數(shù)組重新復(fù)制 originalArray=temp; |
以后建議在重置數(shù)組或者數(shù)組復(fù)制時(shí)用這個(gè)靜態(tài)方法,效率要比f(wàn)or循環(huán)高(來(lái)自某本技術(shù)書(shū)籍)
補(bǔ)充知識(shí):java:復(fù)制數(shù)組(指定范圍內(nèi)復(fù)制)
相關(guān)說(shuō)明
int newArray0[]=copyOf(這里放被復(fù)制的數(shù)組,這里放要復(fù)制的長(zhǎng)度);
當(dāng)復(fù)制長(zhǎng)度大于被復(fù)制的數(shù)組長(zhǎng)度時(shí),超出部分int類(lèi)型用0代替,char類(lèi)型用null代替。
當(dāng)復(fù)制長(zhǎng)度小于被復(fù)制的數(shù)組長(zhǎng)度時(shí),只取開(kāi)頭到指定長(zhǎng)度位置的部分。
int newArray1[]=copyOfRange(a,b,c);
range(范圍)
a:被復(fù)制的數(shù)組
b:復(fù)制的起始位置(元素被包括)
c:復(fù)制的終止位置(元素不被包括)
源碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.Arrays; class Demo{ public static void main(String[] args){ int array0[]={ 32 , 82 , 99 }; //被復(fù)制的數(shù)組一 System.out.println( "被復(fù)制的數(shù)組為:32,82,99 \n 復(fù)制長(zhǎng)度為7的數(shù)組為:" ); int newArray0[]=Arrays.copyOf(array0, 7 ); //復(fù)制成長(zhǎng)度為7的數(shù)組 for ( int n= 0 ;n<newArray0.length;n++){ System.out.print( "[" +newArray0[n]+ "]" ); } System.out.println(); //換行 int array1[]={ 82 , 16 , 33 , 11 , 92 , 01 , 34 }; System.out.println( "被復(fù)制的數(shù)組為:82,16,33,11,92,01,34 \n 復(fù)制從1位置到4位置的數(shù)組:" ); int newArray1[]=Arrays.copyOfRange(array1, 1 , 4 ); //從1位置復(fù)制到4位置 for ( int m= 0 ;m<newArray1.length;m++){ System.out.print( "[" +newArray1[m]+ "]" ); } System.out.println(); //換行 } } |
運(yùn)行結(jié)果
以上這篇JAVA復(fù)制數(shù)組和重置數(shù)組大小操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/wjsshhx/article/details/62041120