Java中的Basic Matrix,get方法不起作用

时间:2017-07-03 12:19:07

标签: java matrix getter

对于我的教育我必须在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。 我会感谢任何帮助!!

1 个答案:

答案 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课程覆盖equalshashCode