最近在做一道由一个二叉树的 中、前遍历 重构二叉树的题
用到了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为空
-