为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA:阅读copyOfRange()源码遇到的一个疑惑。

JAVA:阅读copyOfRange()源码遇到的一个疑惑。

梵蒂冈之花 2019-03-21 22:19:03
public static char[] copyOfRange(char[] original, int from, int to) { int newLength = to - from; if (newLength < 0) throw new IllegalArgumentException(from + " > " + to); char[] copy = new char[newLength]; System.arraycopy(original, from, copy, 0, Math.min(original.length - from, newLength)); return copy; }arraycopy(src,sPos,dest,dPos,length)中最后一个参数是“要复制的数组元素的数量”,那就用newLength代入了,为什么还要比较“original.length - from”和“newLength”之间谁最小值?这样做的用意是?谢谢!
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

我来告诉你。
char[] copy = new char[newLength];

这个是你想复制出来的数组的大小,注意这个大小,不一定全部是有数据的。
他的值完全决定于 你的 from to;

这个是真要复制有数据的大小。
Math.min(original.length - from, newLength)

假设这里面 原始数组的长度是 8 from为 4 to为 10
说明我要创建一个6个长度的数组,前4个数据来源于原始数据!~~后两个,干啥现在还不清楚。。明白了吧!~~


查看完整回答
反对 回复 2019-04-26
  • 1 回答
  • 0 关注
  • 565 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号