Как я могу переключить две строки в 2d-массиве

#java #arrays #multidimensional-array

#java #массивы #многомерный массив

Вопрос:

Ниже приведен мой код. Здесь мне нужно переключить два имени в 2D-массиве, но я не уверен, как это сделать.

Кто-нибудь знает, как это сделать?

     import java.util.Scanner;

    public class Homeworktest {
        public static void main(String[] args) {

            String[][] people = new String[3][3];
            people[0][0] = "April";
            people[0][1] = "Jenny";
            people[0][2] = "Charlie";
            people[1][0] = "Maya";
            people[1][1] = "Daniel";
            people[1][2] = "Felix";
            people[2][0] = "Jack";
            people[2][1] = "Charlotte";
            people[2][2] = "Nick";

            for(int i = 0; i < people.length; i  ) {
                String[] subarrays = seatingChart[i];
                for(int y = 0; y < people.length; y  ) {
                    System.out.print(subarrays[y]   " ");
                }

                System.out.println();
            }

            public static void switchSeats(int row1, int col1, int row2, int col2) {

            }
        }
    }
  

Комментарии:

1. Сохраните значение первой во временной переменной, затем замените первую на вторую, а вторую на значение временной переменной.

Ответ №1:

Чтобы поменять местами значения двух местоположений массива, сначала сохраните одно значение во временной переменной, присвоите значение второго местоположения первому местоположению и, наконец, присвоите значение временной переменной второму местоположению.

 public static void switchSeats(String[][] people, int row1, 
                                       int col1, int row2, int col2) {

   String tmp = people[row1][col1];
   people[row1][col1] = people[row2][col2];
   people[row2][col2] = tmp;

}
  

В приведенном выше коде tmp служит временной переменной.

Комментарии:

1. Это неправильно. Ваше второе утверждение должно быть people[row1][col1] = people[row2][col2]; .