繁体   English   中英

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

[英]Basic Matrix in Java, get method doesn't work

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

看看你的put方法,看起来你总是在Map放入相同的键( this.point ),并改变那个键。 这是错误的,并且会导致相同的键在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM