for(Context context : contexts) {
if(context.equals(c)){
System.out.println(context.equals(c)+" : "+contexts.contains(c));
}
}
がは私にイコール()と一見
が、これは任意の出力を生成する場合、それは "真:true" を作るべきであると思わTreeSetの標準的なJavaでコンテキスト矛盾)(含まれています。不思議なことに、それはいつも「真:偽」で戻ってくる。
ドキュメントを参照してください。私は本質的に.contains関数が何をしているのかを正確に再現していますが、まだ別の結果を得ています。
誰でもこれを説明できますか?
EDIT:Javaドキュメント(コレクション)から:
コレクションに指定された要素が含まれている場合にtrueを返します。より正式には、このコレクションに、(o == null?e == null:o.equals(e))などの少なくとも1つの要素eが含まれている場合にのみtrueを返します。
カスタムの場合は 'Context'ソースを提供するか、パブリックにアクセスできる場合はパッケージを含む完全修飾名を提供してください。 –
@SergeyProkofievどちらもありません。それが問題になるTreeSetの実装であるかどうかにかかわらず、なぜそれが問題であるべきかわからない。 –
いいえ、あなたの実装は 'equals()'と 'compareTo()'の実装です。 –