java複製數組的兩種常用方法copyOf和copyOfRange

遇到某些場景,我們需要去複製數組。java已經爲我們封裝了許多方法來滿足我們的需求

常用的兩種複製數組的方法:

  1. 使用java.util.Arrays.copyOf(T[], int)方法
  2. 使用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,哈哈哈

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