Java 复制和修改数组元素

Java 复制和修改数组元素,java,arrays,loops,Java,Arrays,Loops,我必须为一个数组编写一个循环,该数组希望在输出中使用旧的分数,但却将newScores[0]=20和newScores[3]=10。 当它测试{10,20,30,40,}时,我通过了第一次运行。它期望输出:20 30 40 10。 当它通过第一次测试时,它会使用oldScores={199}再次测试它,它期望的输出仅为199 public class StudentScores { public static void main (String [] args) {

我必须为一个数组编写一个循环,该数组希望在输出中使用旧的分数,但却将
newScores[0]=20
newScores[3]=10
。 当它测试
{10,20,30,40,}
时,我通过了第一次运行。它期望输出:
20 30 40 10
。 当它通过第一次测试时,它会使用
oldScores={199}
再次测试它,它期望的输出仅为
199

     public class StudentScores {
      public static void main (String [] args) {
      final int SCORES_SIZE = 4;
      int[] oldScores = new int[SCORES_SIZE];
      int[] newScores = new int[SCORES_SIZE];
      int i = 0;

      oldScores[0] = 10;
      oldScores[1] = 20;
      oldScores[2] = 30;
      oldScores[3] = 40;

     /* solution goes here */

     for (i = 0; i < SCORES_SIZE; ++i) {
     System.out.print(newScores[i] + " ");
     }
     System.out.println();

    return;
     }
    }
公共班级学生成绩{
公共静态void main(字符串[]args){
最终int分数_SIZE=4;
int[]旧分数=新整数[分数大小];
int[]新闻核心=新的int[分数大小];
int i=0;
旧分数[0]=10;
旧分数[1]=20;
旧分数[2]=30;
旧分数[3]=40;
/*解决方案就在这里*/
对于(i=0;i
我使用的代码在这里

 for(i=0; i<SCORES_SIZE -1; i++){
  newScores[i] = oldScores[i +1];
  newScores[3] = oldScores[0];
 }

for(i=0;i您似乎走上了正确的道路,但您的解决方案的逻辑过于复杂。下面是一个更简单的选项:

System.arraycopy(oldScores, 0, newScores, 0, oldScores.length); // create copy of oldScores and place it in newScores.
newScores[0] = 20;
newScores[3] = 10;
或者,如果您不希望使用
System.arraycopy()
,您可以通过简单地迭代每个元素来复制数组。例如

for(int i = 0; i < oldScores.length; i++) {
    newScores[i] = oldScores[i];
}
for(int i=0;i
您似乎走上了正确的道路,但您的解决方案的逻辑过于复杂。下面是一个更简单的选项:

System.arraycopy(oldScores, 0, newScores, 0, oldScores.length); // create copy of oldScores and place it in newScores.
newScores[0] = 20;
newScores[3] = 10;
或者,如果您不希望使用
System.arraycopy()
,您可以通过简单地迭代每个元素来复制数组。例如

for(int i = 0; i < oldScores.length; i++) {
    newScores[i] = oldScores[i];
}
for(int i=0;i
您似乎试图通过旋转数组中的元素来创建数组
新闻核心
。 在每个循环中,您不需要执行
newScores[3]=oldScores[0];
,只需执行一次即可

以下解决方案适用于给定
分数\u大小的数组

for(i = 0; i < SCORES_SIZE - 1; i++){
    newScores[i] = oldScores[i + 1];
}
newScores[SCORES_SIZE - 1] = oldScores[0]; // set first element of "oldScores" to last element of "newScores"
for(i=0;i
您似乎试图通过旋转数组中的元素来创建数组
新闻核心
。 在每个循环中,您不需要执行
newScores[3]=oldScores[0];
,只需执行一次即可

以下解决方案适用于给定
分数\u大小的数组

for(i = 0; i < SCORES_SIZE - 1; i++){
    newScores[i] = oldScores[i + 1];
}
newScores[SCORES_SIZE - 1] = oldScores[0]; // set first element of "oldScores" to last element of "newScores"
for(i=0;i
首先,将旧分数复制到新闻核心中。然后,将新闻核心[0]设置为20,将新闻核心[3]设置为10。首先,将旧分数复制到新闻核心中。然后,将新闻核心[0]设置为20,将新闻核心[3]设置为10。