Как сдвинуть значения в массиве влево на 3 - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь сместить значения в массиве влево на 3. Цель, которую я пытаюсь сделать, - заставить весь код вращаться влево.

double[] x = {38, 44, 15, 11, 27, 19, 8, 12, 10};
      System.out.println("Before rotation:  ==============================");
      for (int i = 0; i < x.length; i++)
      {
         System.out.println("x[" + i + "]:  " + x[i]);
      }
      x = rotate(x, 3);
      System.out.println("After rotation:  ==============================");       
      for (int i = 0; i < x.length-3; i++)
      {

          System.out.println("x[" + i + "]:  " + x[i]);

}
}

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Ниже код демонстрирует, как вы можете вращать массив.

Первый arraycopy() вызов копирует последнюю часть массива (от rotateBy до конца).Второй вызов arraycopy() копирует начальную часть массива (от начального до rotateBy).

import java.util.Arrays;

public class Rotate {

  public static void main(String[] args) {
    double[] input = {8, 4, 5, 21, 7, 9, 18, 2, 100};
    double[] output = rotate(input, 3);
    System.out.println("Input:  " + Arrays.toString(input));
    System.out.println("Output: " + Arrays.toString(output));
  }

  public static double[] rotate(double[] inputArray, int rotateBy) {
    double[] output = new double[inputArray.length];
    System.arraycopy(inputArray, rotateBy, output, 0, inputArray.length - rotateBy);
    System.arraycopy(inputArray, 0, output, inputArray.length - rotateBy, rotateBy);
    return output;
  }
}
0 голосов
/ 09 февраля 2019

Самый простой способ - использовать System.arraycopy:

public class Answer {
  public static void main(String[] args) {
    double[] initial = {8, 4, 5, 21, 7, 9, 18, 2, 100};
    double[] shifted = new double[initial.length];
    System.arraycopy(initial, 3, shifted, 0, initial.length - 3);

    System.out.println(Arrays.toString(shifted));
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...