首页 > 解决方案 > 创建一个从 1 到 10 的随机数字数组。然后,在 java 中将所有 7 移动到数组的前面

问题描述

创建一个从 1 到 10 的随机数字数组。然后,将所有 7 移到数组的前面。其他数字的顺序并不重要,只要所有数字都遵循 Lucky 7s 组即可。查看插入排序和选择排序的代码可能对这项任务很有帮助。Arrays.toString() 也很有用。例如,如果给您列表 :: 4 5 6 7 1 2 3 7 列表可能变成 - 所有 7 必须在前 :: 7 7 6 4 1 2 3 5

我的代码:

public class NumberShifter
{

public int[] go(int[] arrayToBeShifted, int index)
{
  int originalArray[] = new int[index];
  int valueBeingMoved = originalArray[index];

  for (int i = index; i > 0; i--) 
  {
    arrayToBeShifted[i] = arrayToBeShifted[i-1];
  }

  arrayToBeShifted[0] = valueBeingMoved;

  return arrayToBeShifted;
}
}

跑者:

class Main
{
  public static void main(String[] args) 
  {
    int random[] = new int[10];
    for(int i=0; i<random.length; i++)
    {
      random[i] = (int)(Math.random()*6)+1;
    }
    NumberShifter rt = new NumberShifter();   
    System.out.println(rt.go(random,7));
    System.out.println(rt.go(random,7));
    System.out.println(rt.go(random,7));
    System.out.println(rt.go(random,7));
  }
}

这个程序给我错误请任何人告诉我我使用正确的方法来解决这个问题。如果我对这个问题使用了错误的方法,请用正确的方法解决这个问题。

标签: javaarrays

解决方案


这就是我解决问题的方法,我为代码创建了两个单独的 runner 和 main 类。

我的代码:

public class NumberShifter
{

public int[] go(int[] arrayToBeShifted, int index)
{
  for (int i = 0, e = 0; i < arrayToBeShifted.length; i++) 
  {
    if (arrayToBeShifted[i] == 7)
    {
    arrayToBeShifted[i] = arrayToBeShifted[e];
    arrayToBeShifted[e] = 7;
    e++;
    }
  }
  return arrayToBeShifted;
}
}

跑者:

class Runner
{
  public static void main(String[] args) 
  {
    NumberShifter rt = new NumberShifter();  
  //demo to see  if code works
    System.out.println(java.util.Arrays.toString(rt.go(new int[]{1, 10, 9, 2, 8, 2, 5, 6, 10, 7, 9, 8, 6, 7, 2, 7, 6, 10, 5, 3},7)));

  //random arrays according to question
  int random[] = new int[20];
    for(int i=0; i<random.length; i++)
    {
      random[i] = (int)(Math.random()*10)+1;
    }
     System.out.println(java.util.Arrays.toString(rt.go(random,7)));
    System.out.println(java.util.Arrays.toString(rt.go(random,7)));
    System.out.println(java.util.Arrays.toString(rt.go(random,7)));

  }

}

推荐阅读