JAVA複製陣列和重置陣列大小操作
阿新 • • 發佈:2020-09-14
翻看印象筆記發現自己整理過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複製陣列和重置陣列大小操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。