从ArrayList创建一个Matrix

时间:2015-02-24 18:57:20

标签: java math matrix arraylist

我想创建一个通过ArrayList创建Matrix的类。

这就是我所做的:

public class Matrice implements IMatrice {

ArrayList elements;
private int numLignes;
private int numColonnes;

public static void main(String[] args) {
    Matrice test = new Matrice(3, 4, 6.0);
    System.out.println(test);
}

public Matrice (int numLignes, int numColonnes, double valeur){
    this.numLignes = numLignes;
    this.numColonnes = numColonnes;
    elements = new ArrayList(numLignes * numColonnes);
    for(int i = 0; i < numLignes * numColonnes; i++){
        elements.add(i, valeur);
    }
}
}

现在我创建了这个,我想试试它是否有效。然后我创建了这个toString()方法:

public String toString() {
    final DecimalFormat DEC_FORMAT = new DecimalFormat("0.0");
    final int ESP = 8; 
    int num;
    String sTmp;
    String s = "[";
    for (int i = 0 ; i < (numLignes * numColonnes) ; i++) {
       //etendre i sur ESP colonnes
       sTmp = "";
       num =  ESP - DEC_FORMAT.format(elements.get(i)).length();
       for (int j = 0 ; j < num ; j++) {
          sTmp = sTmp + " ";
       }
       sTmp = sTmp + DEC_FORMAT.format(elements.get(i));

       if (i != 0 && i % numColonnes == 0) {
          s = s + "  ]\n[" + sTmp; 
       } else {
          s = s + sTmp;
       }
    }
    s = s + "  ]";
    return s;
 }

然后这是我主要尝试Matrix:

public static void main(String[] args) {
    Matrice test = new Matrice(3, 4, 6.0);
    System.out.println(test);
}

我不知道为什么,但我只能得到这个:

[  ]

我知道有一点是错的,但我无法找到。你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

好的,我搞砸了......

问题出在这里:

elements.add(i, valeur);

我犯了一个错误......我混淆了set()方法。

这是更正:

elements.add(valeur);