2016-06-19 6 views
0

Graphstream NodeオブジェクトのhashCode()をオーバーライドするにはどうすればよいですか?GraphstreamのhashCode()をオーバーライドします

私はノードをHashSetに挿入しています。

HashSet<Node> set = new HashSet<Node>();

+0

まあ、同じハッシュを持つ複数のノードがあります。 –

+0

'Node'のラッパークラスを記述し、そこに' hashCode'と 'equals'の実装を提供します。次に、 'Node'の代わりにその型の' Set'を使います。 –

答えて

1

あなたはObjects.hash(オブジェクト...)を使用して、このクラスでハッシュオブジェクトを拡張するためにノードから継承することができます。ちょうどあなたが一緒にハッシュされているようにしたいものは何でも、この方法に投げる...

class MyNode extends Node { 

// whatever floats you boat here 

    @Override 
    public int hashCode() { 
     return Objects.hash(super.hashCode(), other); 
    } 

    @Override 
    public boolean equals(Object o) { 
    // hashCode() and equals() overrides should always appear together 
    } 
} 

はたぶん見here

EDITていますいけない」イコール()のオーバーライドを忘れて!

関連する問題