2017-03-11 11 views
0

私はSetOfBooksクラスからBookを削除するために使用するこのメソッドを持っています。私はループして削除しようとしたが、やはりgoogledした。これは私が渡しているBookオブジェクトを削除せず、falseを返すので、どこが間違っているのか分かりません。私はメソッドが、指定されたオブジェクトをリストから削除したがっていました。 助けてください。ありがとうarrayListオブジェクトの削除Java

以下は、removebook()メソッドと呼ばれるコードです。

+1

実際の問題は何ですか? –

+0

は、パラメータとして渡すオブジェクトを削除できません。 – niki123

+4

'public class SetOfBooks extends Vector {'ではなく、 'public class SetOfBooksではありません。 extends Vector {'後者の場合、 'Book'は型変数であり、' Book'クラスではありません。 –

答えて

3

Bookクラスのequals(およびhashcode)メソッドを上書きしていない可能性があります。

equalsをオーバーライドしないと、正確に同じオブジェクトのみがremoveを使用してコレクションから削除されます。

+0

'equals'と' hashCode'を契約に従ってオーバーライドすると、 'borrower'のような潜在的に変更可能なフィールドに特別な注意が払われます。 IDEから自動生成されたこれらのメソッドの実装では、これらのフィールドがすべて含まれています。たとえば、あなたが実際に借り手を持っている "本物の"本を見つけたり削除したりするために借り手を知らず、書籍オブジェクトを構築するコードの1つの場所でも、これはうまくいきません。 –

関連する問題