30

StringBuffer/StringBuilder がオブジェクトのメソッドをequals()オーバーライドしないのはなぜですか?hashcode()

問題を理解するのに役立つ明確な画像を教えてください...

4

3 に答える 3

41

は変更可能であり、主なStringBuffer用途は文字列の構築です。コンテンツを比較したい場合は、呼び出しStringBuffer#toString()て戻り値を比較します。

hashCode()でキーとして使用されるそのようなオブジェクトを変更するHashMapと、保存された値が「失われる」可能性があるため、変更可能なオブジェクトをオーバーライドすることは一般に有用ではありません。

于 2012-06-20T03:58:01.353 に答える