這段時間一直在各種面試,有過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);
}
}