对于我的教育我必须在Java中编写一个基本的Matrix,你可以在其中放置元素。元素的行和列应该用点实现,然后我应该将Point与地图中的元素连接起来。有一个方法put(),我可以使用HashMap保存元素到这个矩阵中。我现在的问题是我无法正确查看地图中的元素。
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。 我会感谢任何帮助!!
答案 0 :(得分:2)
查看您的put
方法,看起来您始终在this.point
中放置相同的密钥(Map
),并改变该密钥。这是错误的,会导致同一个密钥在Map
中出现多次。
将其更改为:
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;
}
此外,请确保您的Point
课程覆盖equals
和hashCode
。