java怎么复制数组,java数组复制到另一个数组
1.数组长度相等。
假设nums和nums1是两个长度相等的数组。
(推荐课程:java课程)
1.1,使用nums=nums1
分配前
如何解决写爬虫IP受阻的问题?立即使用。
分配后
创建nums时,在堆中创建一个内存区域用于存储,nums指向这个内存地址a。创建Nums1并指向B.
现在设nums=nums1num1的地址(或引用)赋给num,所以num也指向b,两个数组都指向堆中的同一个内存区域,它们共享其中的数据。
1.2,for循环
for(int I=0;I nums 1 . length;i ){
nums[I]=nums 1[I];
}流通前
循环后
成功更改了nums数组的内部内容,但没有更改其引用。
1.3.数组类
1:将指定的数组复制到指定的长度。
nums=Arrays.copyOf(nums1,5);2:复制指定长度的指定数组。
nums=arrays . copyofrage(nums 1,0,5);在这两种方法中,最后一个索引可以是数组的长度,然后后面的索引将用0填充。
两种方法都可以成功复制数组,我们发现原来的数组nums从524变成了526,说明这两种复制方法都是创建一个新的数组,然后用等号左边的数组指向这个新的数组。
1.4、System.arraycopy方法
System.arraycopy(originalArray,0,targetArray,0,original array . length);
可以看出这个方法类似于我们的for循环,直接改变原数组的内容,不改变引用。
2.数组长度不相等。
如果赋值方法成功,for循环要注意越界的问题,Java。lang . arrayindexoutofboundsexception Arrays类方法会报告越界的问题,而Java。将报告lang . arrayindexoutofboundsexception。
其他:
给定一个数组nums,写一个函数将所有的零移动到数组的末尾,同时保持非零元素的相对顺序。
//思路:设置一个索引来表示非零数字的个数,循环遍历数组,
//如果不为0,则将非零值移动到索引位置,然后索引1
//遍历后,索引值表示为0以外的数字。再次遍历,此时索引位置之后的所有位置都应该为0。
public void move zeros(int[]nums){
if (nums==null nums.length=1) {
返回;
}
int index=0;
for(int I=0;i nums.lengthi ) {
if (nums[i]!=0) {
nums[index]=nums[I];
指数;
}
}
for(int I=index;i nums.lengthi ) {
nums[I]=0;
}
}相关推荐:java简介以上是java如何复制数组的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。