[英]How can I copy the elements on an array into another array with a different size?
[英]How can i copy array elements from one to another in loop?
我是 Java 的新手,但我已经研究了 C 一段时间,并且有一个非常愚蠢的问题,我无法自己回答。 我想将一个数组中的元素(数字 10 之后的元素)复制到另一个数组(它将包含第一个数组中10之后的数字)我大致知道如何制作它,但我找不到我的具体答案案子。 也许我的代码不正确,我应该重写它,但我想坚持下去。 我知道该练习必须有很多答案,但我试图避免查看它们(因为我想开始自己解决它们)并创建自己的解决方案。
我的代码不会从第一个数组中复制每个元素(位置),而是将最后一个元素复制到第二个数组中的所有位置。
我希望我把我的问题说清楚了,我的代码是可读的。 谢谢大家。 和平与爱!
所以,代码来了
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n; // Size of the first array
int flag=0;
System.out.println("Enter array size ");
n=in.nextInt();
int [] arr;
arr=new int[n];
System.out.println("Enter elements ");
for(int i=0;i<n;i++){
arr[i]=in.nextInt();
}
System.out.println("Your array is "+Arrays.toString(arr));
for(int i=0;i<n;i++){
if(arr[i]==10)
break;
flag = arr[i]; // HERE I AM LOCATING 10'S POSITION
}
int size=n-flag; // This is a funny part, i am "calculating" for the second array's size)
int[] new_arr;
new_arr= new int[size];
for(int i=flag;i<n;i++){ // I think here must be the problem!
for(int j=0;j<size;j++){
new_arr[j]=arr[i];
}
}
System.out.println("Lets try "+Arrays.toString(new_arr));
}
}`
你可以只使用System.arraycopy(source_arr, sourcePos, dest_arr, destPos, len);
它来自 java.lang.System 的方法
那么首先,position 10 是 position 10 ,不需要在 position 10 找到值...
也不需要 2 个循环,我们只需从 10 开始迭代所有元素并复制它们。
所以我们只是做
int start_pos=10;
int size=n-start_pos;
int[] new_arr = new int[size];
for(int i=start_pos;i<n;i++){
new_arr[i-start_pos]=arr[i];
}
}
是的,就像其他人所说的那样,更一般地说,您会使用 System.arraycopy() 甚至更好地使用列表并调用 subList 方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.