Arrays.copyOfRange方法

  • Post author:
  • Post category:其他


最近在做一道由一个二叉树的 中、前遍历 重构二叉树的题

用到了Arrays 类中的copyOfRange方法    是一个

静态方法

这个将指定数组的指定范围复制到新数组中。

不过遇到了一个问题,就是刚开始时候 怎么都不是想要的结果,最后发现是方法参数

———to———-

的猫腻,写下来希望让大家看到!

下面以 返回类型为 int 类型为例:

  • 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

      – 要复制的范围的最终索引,排他。 (该索引可能位于数组之外)


    • 记住from包括 to不包括


    • 结果


      一个包含原始数组的指定范围的新数组,用零截取或填充以获得所需的长度


      异常




      ArrayIndexOutOfBoundsException


      – 如果

      from < 0



      from > original.length




      IllegalArgumentException


      – 如果 from > to




      NullPointerException


      – 如果 original为空



版权声明:本文为qq_36776216原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。