1. 程式人生 > 程式設計 >JAVA複製陣列和重置陣列大小操作

JAVA複製陣列和重置陣列大小操作

翻看印象筆記發現自己整理過arraycopy()這樣一個方法,碼字放到這裡:

System.arraycopy()是一個靜態方法,用來實現重置陣列操作

陣列複製方法呼叫和引數列表:

System.arraycopy(src,srcPos,dest,destPos,length);

src:原陣列

srcPos:原陣列的開始位置

dest:目標陣列

destPos:目的陣列的開始位置

length:複製長度

陣列複製程式碼示例:

//originalArray 陣列全部複製到targetArray陣列
int [] originalArray = new int[10];
int [] targetArray = new int [10];
System.arraycopy(originalArray,targetArray,originalArray.length);

通過入參的長度 限制是全部複製還是部分複製

重置陣列大小程式碼示例:

 int [] originalArray = new int[10];
 int [] temp =new int [originalArray.length + 10];
 System.arraycopy(originalArray,temp,originalArray.length);
 //陣列重新複製
 originalArray=temp;

以後建議在重置陣列或者陣列複製時用這個靜態方法,效率要比for迴圈高(來自某本技術書籍)

補充知識:java:複製陣列(指定範圍內複製)

相關說明

int newArray0[]=copyOf(這裡放被複制的陣列,這裡放要複製的長度);

當複製長度大於被複制的陣列長度時,超出部分int型別用0代替,char型別用null代替。

當複製長度小於被複制的陣列長度時,只取開頭到指定長度位置的部分。

int newArray1[]=copyOfRange(a,b,c);

range(範圍)

a:被複制的陣列

b:複製的起始位置(元素被包括)

c:複製的終止位置(元素不被包括)

原始碼

import java.util.Arrays;
class Demo{
 public static void main(String[] args){
 int array0[]={32,82,99};//被複制的陣列一
 System.out.println("被複制的陣列為:32,99 \n 複製長度為7的陣列為:");
 int newArray0[]=Arrays.copyOf(array0,7);//複製成長度為7的陣列
 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("被複制的陣列為:82,34 \n 複製從1位置到4位置的陣列:");
 int newArray1[]=Arrays.copyOfRange(array1,1,4);//從1位置複製到4位置
 for(int m=0;m<newArray1.length;m++){
 System.out.print("["+newArray1[m]+"]");
 }
 System.out.println();//換行
 }
}

執行結果

JAVA複製陣列和重置陣列大小操作

以上這篇JAVA複製陣列和重置陣列大小操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。