Есть ли способ использовать циклы для улучшения этого кода? - PullRequest
0 голосов
/ 04 ноября 2019

По сути, я пытаюсь найти лучший способ написания этого кода с использованием циклов. Rational и Matrix - это классы, которые я сделал. Для создания объекта Matrix мне нужны четыре объекта Rational.

       Rational r1 = r.multiplyValue(array[0][0]);
       Rational r2 = r.multiplyValue(array[0][1]);
       Rational r3 = r.multiplyValue(array[1][0]);
       Rational r4 = r.multiplyValue(array[1][1]);

       return new Matrix(r1,r2,r3,r4);

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Предположим, что у вас есть Matrix конструктор как таковой

public Matrix(Rational...rationals){
    // TODO: initialize stuff
}

, тогда вы можете перебирать массив и конструировать Matrix объект как этот

    int[][] array = // Something useful

    Rational[] rs = new Rational[4];
    for(int i=0;i<array.length;i++){
      for(int j=0;j<array[i].length;j++){
        rs[i*2+j] = r.multipleValue(array[i][j]);
      }
    }

    return new Matrix(rs);
0 голосов
/ 04 ноября 2019

Да! Вы можете сделать это, но вы должны использовать некоторую коллекцию или структуру данных, которая хранит однородные объекты, например, список или массив.

Пример ниже:

       List<Rational> list  = new ArrayList<>();

       for(int i=0;i<=1;i++){
       for(int j=0;i<=1;j++){
           list.add(r.multiplyValue(array[i][j]));
       }

       }


       return new Matrix(list); // modify constructor to accept list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...