我有一门矩阵课 fillMatrix()
以及 printMatex()
方法,它是分数矩阵,使用hashmap填充: HashMap <Integer, ArrayList<Number>>
(具有行和列格式)
数是一类用加减法和分式的方法。我要求用一种方法 Matrix
类在两个矩阵之间进行加法,如下所示:
该类有一个公共的空白 addMatrices (Matrix, Matrix)
它有两个矩阵作为参数,它计算这些矩阵的和。
我写了这个代码,但没用。它给了我这个错误:
Incompatible types: ArrayList<Number>cannot be converted to Number
这是我的密码
public void addMatrices(Matrix m1, Matrix m2) {
HashMap<Integer, ArrayList<Number>> matrix3 = new HashMap<Integer, ArrayList<Number>>();
HashMap<Integer, ArrayList<Number>> matrix1 = m1.hMap;
HashMap<Integer, ArrayList<Number>> matrix2 = m2.hMap;
Number ob = new Number();
for (int i = 1; i <= rows; i++) {
for (int j = 0; j <= cols; j++) {
matrix3.put(i, ob.addition(matrix1.get(j), matrix2.get(j)));
}
}
}
3条答案
按热度按时间rkkpypqq1#
问题是你的变量
matrix3
属于类型如果你想把一个值放到hashmap中,下面的类型是示例
但是你调用number类的加法,把结果作为value放入put方法,我认为结果也是一个数
所以问题在于:
要么你把matrix3类型改成
或者在加法后将arraylist作为值:
eeq64g8w2#
从错误情况来看,您似乎忘记了从矩阵中取出行。像这样的
应该会成功的。
cu6pst1q3#
你想加两个
ArrayList
s、 而不是两个Number
s、 您基本上缺少一个循环:(类java伪代码):
作为补充说明,在执行此操作之前,您可能还应该验证两个矩阵的维数。