このクラスの関数を作成しましたが、hashcode
なんらかの理由で、キーが実際にHashMap
. (座標は文字列)
@Override
public int hashCode() {
return coordinates.hashCode();
}
.equals
また、2 組の座標が互いに等しいかどうかをテストするクラスのメソッドも作成しました。ただし、ハッシュコード メソッドが正しく機能していることを確認するために、.equals
メソッドを次のように切り替えました。
public boolean equals(Object arg) {
Block a = (Block) arg;
return hashCode() == a.hashCode();
}
そして、それらはすべて、次のような呼び出しで他の場所でhashmap.containskey()
呼び出されています。
return (hashblocks.containsKey(newz));
何らかの理由で、これは true ~ 50% の場合にのみ返されます (まったく同じケースを再入力することさえありますが、機能する場合と機能しない場合があります)。HashMap
s とs で適切に動作するようにするSet
には、特にこの実装に問題があるのはなぜだろうと思っています。(基本的に、バグは何である可能性があります)
3 1 3 1
true
4 2 4 2
false
0 0 1 0
0 3 1 3
2 0 3 0
2 3 3 3
0 1 1 2
2 1 2 2
4 0 4 0
4 2 4 2
3 1 3 1
3 2 3 2
3 1 3 1
true
4 2 4 2
true
3 2 3 2
true
0 0 1 0
0 3 1 3
2 0 3 0
3 3 4 3
0 1 1 2
2 1 2 2
4 0 4 0
4 2 4 2
3 1 3 1
3 2 3 2
クエリの後にはその結果が続き、数値の長いセットはすべてのキーとそれに続く改行文字を表します