Arrays.copyOfRange使用

Java的Arrays.copyOfRange方法用于复制数组的指定范围到新数组。它接受原数组、初始索引和结束索引作为参数,返回一个新的数组。如果结束索引超出原数组范围,则新数组相应位置填充0。在处理数组算法时,该方法能提供较高的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,比利用循环复制数组效率要高很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值