Java中的基本矩阵,get方法不';行不通
对于我的教育,我必须用Java编写一个基本的矩阵,在其中可以放置元素。元素的行和列应该用一个点实现,然后我应该将点与映射中的元素连接起来。有一个方法put(),我可以用它将元素放入这个矩阵中,并保留一个HashMap。我现在的问题是,我无法正确地看到地图中的元素Java中的基本矩阵,get方法不';行不通,java,matrix,getter,Java,Matrix,Getter,对于我的教育,我必须用Java编写一个基本的矩阵,在其中可以放置元素。元素的行和列应该用一个点实现,然后我应该将点与映射中的元素连接起来。有一个方法put(),我可以用它将元素放入这个矩阵中,并保留一个HashMap。我现在的问题是,我无法正确地看到地图中的元素 public boolean get(int row, int column) { Point p = new Point(); p.x = column; p.y = row;
public boolean get(int row, int column) {
Point p = new Point();
p.x = column;
p.y = row;
if (matrixMap.containsKey(p)) return true;
else return false;
}
public T put(int row, int column, T value) {
point.x = column;
point.y = row;
this.matrixMap.put(this.point, value);
return null;
}
为了测试它,我的get方法只返回true和false。如果用户放入的行和列中有对象,则应返回true。但由于某些原因,它总是返回false。
我将感谢任何帮助 查看您的
put
方法,看起来您总是在映射中放置相同的键(this.point
),并对该键进行变异。这是错误的,将导致同一个键在地图中出现多次
将其更改为:
public T put(int row, int column, T value)
{
Point p = new Point();
p.x = column;
p.y = row;
this.matrixMap.put(p, value);
return value;
}
此外,请确保您的点
类覆盖等于
和哈希码
您使用的是标准java点类还是您自己的点类?