遇到某些場景,我們需要去複製數組。java已經爲我們封裝了許多方法來滿足我們的需求
常用的兩種複製數組的方法:
- 使用java.util.Arrays.copyOf(T[], int)方法
- 使用java.util.Arrays.copyOfRange(T[], int, int)方法
- java.util.Arrays.copyOf(T[], int)
T[]:傳入要複製的數組
int:傳入新數組的長度
return:返回從索引0開始n個長度的數組
int[] a = {1,2,3,4,5};
int[] b;
b = Arrays.copyOf(a, 6);
System.out.println(Arrays.toString(b));
因爲源數組只有5個元素,但要求新數組爲6個元素,所以多出一個元素爲0,輸出:
[1, 2, 3, 4, 5, 0]
- java.util.Arrays.copyOfRange(T[], int, int)方法
T[]:傳入要複製的數組
int:傳入要複製的起始索引
int:傳入要複製的結束索引
return:返回範圍爲 “起始索引~(結束索引 - 1)”的數組
int[] a = {1,2,3,4,5};
int[] b;
b = Arrays.copyOfRange(a, 2, 4);
System.out.println(Arrays.toString(b));
起始索引爲2對應元素3,結束索引爲4對應元素5,因爲是返回的數組範圍爲起始索引~(結束索引 - 1),
所以輸出爲:
[3, 4]
還有一種是java.lang.System.arraycopy(Object, int, Object, int, int),但是用起來比較麻煩,介紹的兩種已經夠用了,所以就不展開說了,感興趣的小夥伴可以去了解一下
最後,小夥伴們有沒有發現copyOf和copyOfRange的關係類似於截取字符串的substr和substring,哈哈哈