2017-07-03 5 views
3

私の教育のために要素を入れることができるJavaで基本的な行列を書く必要があります。要素の行と列はポイントで実装する必要がありますし、ポイントをマップ内の要素に接続する必要があります。 put()メソッドがあります。このメソッドでは、HashMapを持って要素をこの行列に入れることができます。私の問題は、私がマップ内の要素を正しく見ることができないことです。Javaの基本的な行列、getメソッドが機能しません

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

標準のJava Pointクラスまたは独自のPointクラスを使用していますか? – EarthDragon

答えて

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よりも優先されますことを確認してください。

+0

これはちょうど完全に見つけた、ありがとう – djaszak

関連する問題