關於System.ArrayCopy()與copyOf()

這段時間一直在各種面試,有過Offer也被歧視過,歧視面試完全是一個新的學習過程,你會發現在面試的時候遇到的問題記憶非常深刻。

其中數組的複製問題也是其中的兩個比較常見的問題。平時覺得太簡單沒有注意細節,結果到面試的時候就會出現各種問題。

1 . ArrayCopy()是System類的一個Static void類型的方法。

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

arraycopy(被複制的數組, 從第幾位開始複製, 目標數組, 從複製過來的第幾個元素開始粘貼, 總共粘貼幾個元素)

public class Copy {
String str = "abcdef";
char[] arr = str.toCharArray();
char[] arr2 = new char[6];

public void HH() {
System.arraycopy(arr, 3, arr2, 1, 2);
for (char i : arr2) {
System.out.println(i);
}
}
public static void main(String[] args) {
new Copy().HH();
}
}


2 .copyOf() 在JDK6.0中,Array類別中新增了這個方法,可以直接返回一個新的數組對象,其中包含你主觀複製的內容。

public static byte[] copyOf(byte[] original,int newLength)

original - 要複製的數組
newLength - 要返回的副本的長度 
返回:
原數組的副本,截取或用 0 填充以獲得指定的長度 
拋出: 
NegativeArraySizeException - 如果 newLength 爲負 
NullPointerException - 如果 original 爲 null


public void HH2(){
char [] arr3 = Arrays.copyOf(arr, arr.length);
for(char j:arr3){
System.out.println("數組的值爲:"+j);
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章