Java实现copyOfRange

Posted Java第一傻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现copyOfRange相关的知识,希望对你有一定的参考价值。


一、copyOfRange

public static int[] copyOfRange(int[] original, int from, int to)
将指定数组的指定范围复制到新数组中。 范围( from )的初始指数必须在零和original.length之间,包括在内。 original[from]的值被放置在副本的初始元素中(除非from == original.length或from == to )。原始数组中后续元素的值将被放置在副本中的后续元素中。 必须大于或等于from的范围( to )的最终指数可能大于original.length ,在这种情况下0被放置在其索引大于或等于original.length - from的副本的所有元素中。 返回的数组的长度将为to - from 。
参数 :
original - 要从中复制范围的数组
from - 要复制的范围的初始索引(包括)
to - 要复制的范围的最终索引,排他。 (该索引可能位于数组之外)
结果 :
一个包含原始数组的指定范围的新数组,用零截取或填充以获得所需的长度
异常 :
ArrayIndexOutOfBoundsException - 如果 from < 0或 from > original.length
IllegalArgumentException - 如果 from > to
NullPointerException - 如果 original为空

二、Java语言实现

1.实现copyOfRange

代码如下(示例):

public static long[] copyOfRange(long[] original,int formIndex,int toIndex) 
        long arr[] = new long[toIndex - formIndex + 1];
        for (int i = 0; i < toIndex - formIndex + 1 ; i++) 
            arr[i] = original[formIndex++];
        
        return arr;
    

2.测试用例

public static void main(String[] args) 
        long [] original=1,5,9,6,7,3;
        long[] arr= copyOfRange(original,1,7);
        for (int i = 0; i <arr.length; i++) 
            System.out.println(arr[i]);
        
    

3.运行结果


三、总结

此函数实现只要注意数组下标的变化,难度不大。

以上是关于Java实现copyOfRange的主要内容,如果未能解决你的问题,请参考以下文章

java中的Arrays.copyOfRange方法抛出不正确的异常

at java.util.Arrays.copyOfRange(Arrays.java:3209)导致的java.lang.OutOfMemoryError: Java heap space 错误的解

Java知识系统回顾整理01基础06数组07数组工具类Arrays

java内存溢出

内存溢出

Arrays类