【问题标题】:Is there a way to use loops to better this code?有没有办法使用循环来改进这段代码?
【发布时间】:2019-11-04 02:48:41
【问题描述】:

我实际上是在尝试找到一种更好的方法来使用循环编写此代码。 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);

【问题讨论】:

  • 当前代码有什么问题? “更好”是什么意思?

标签: java arrays loops object


【解决方案1】:

假设你有一个 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);

【讨论】:

    【解决方案2】:

    是的!你可以这样做,但你必须使用一些存储同质对象的集合或数据结构,例如列表或数组。

    下面的例子:

           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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多