Arrays.copyOfRange使用

copyOfRange

public static int[] copyOfRange(int[] original,
int from,
int to)

  1. 將指定數組的指定範圍複製到一個新數組。該範圍的初始索引 (from) 必須位於 0 和
    original.length(包括)之間。

  2. original[from] 處的值放入副本的初始元素中(除非 from == original.lengthfrom == to)。原數組中後續元素的值放入副本的後續元素。

  3. 該範圍的最後索引 (to)(必須大於等於 from)可以大於 original.length,在這種情況下,0 被放入索引大於等於
    original.length - from 的副本的所有元素中。返回數組的長度爲 to - from

參數

  • original - 將要從其複製一個範圍的數組
  • from - 要複製的範圍的初始索引(包括)
  • to - 要複製的範圍的最後索引(不包括)。(此索引可以位於數組範圍之外)。

返回

包含取自原數組指定範圍的新數組,截取或用 0 填充以獲得所需長度

拋出

  • ArrayIndexOutOfBoundsException - 如果 from < 0 或 from > original.length()
  • IllegalArgumentException - 如果 from > to
  • NullPointerException - 如果 original 爲 null

測試

 public static void main(String[] args) {

        int[] original = new int[]{1, 2, 3, 4, 5, 6};

        int[] a = Arrays.copyOfRange(original, 1, 4);
        System.out.println("參數to小於original.length:"+Arrays.toString(a));

        int[] b = Arrays.copyOfRange(original, 1, 8);
        System.out.println("參數to大於original.length(超出部分用0補齊):"+Arrays.toString(b));
    }

在這裏插入圖片描述
Tips:這個方法在一些處理數組的算法題中很好用,效率和clone基本一致,都是native method,比利用循環複製數組效率要高很多。

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