Java从一个数组指定位置拷贝到另外一个数组的指定位置-新法

《数据结构实用教程(Java语言描述)》 徐孝凯 编著

清华大学出版社


有一段这样的代码:


在idea里面 我们发现 for这里有一些小问题:


根据提示我们发现可以通过 System.arraycopy() 方法来替换这个for循环。

不过这个方法放在System这个类下,多少还有些奇怪。

我们先看下文档:


意思是:从源数组的指定开始角标位置,拷贝到目标数组指定位置。

src - 源数组

srcPos - 源数组的开始位置

dest - 目标数组

destPos -目标数组的开始位置

length - 数组元素拷贝的数量

看一个简单的例子:


运行结果为: 12de

我们对原书代码改成为:


经过运行发现效果是一样的。

你可能会奇怪为啥自己复制到自己会不会被覆盖呢?

我们去看下源码,上面有详细的注释:


上面说 如果源数组和目标数组引用的是一个数组的话,就会借助临时数组进行处理。

这样我们就一目了然了。

虽然很简单。

但是一方面说明idea非常强大,

其次关于JDK的方法,如果有疑问尽量去看源码去分析。

另外一方面我们适当接触一下新的方法,不要总墨守成规,对IDE提示视而不见。

我们在写代码的时候建议多看idea给的提示,有一些不规范或者有更好的方法,Idea会给出建议。


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明明如月学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值