私はSetOfBooksクラスからBookを削除するために使用するこのメソッドを持っています。私はループして削除しようとしたが、やはりgoogledした。これは私が渡しているBookオブジェクトを削除せず、falseを返すので、どこが間違っているのか分かりません。私はメソッドが、指定されたオブジェクトをリストから削除したがっていました。 助けてください。ありがとうarrayListオブジェクトの削除Java
以下は、removebook()メソッドと呼ばれるコードです。
私はSetOfBooksクラスからBookを削除するために使用するこのメソッドを持っています。私はループして削除しようとしたが、やはりgoogledした。これは私が渡しているBookオブジェクトを削除せず、falseを返すので、どこが間違っているのか分かりません。私はメソッドが、指定されたオブジェクトをリストから削除したがっていました。 助けてください。ありがとうarrayListオブジェクトの削除Java
以下は、removebook()メソッドと呼ばれるコードです。
Book
クラスのequals
(およびhashcode
)メソッドを上書きしていない可能性があります。
equals
をオーバーライドしないと、正確に同じオブジェクトのみがremove
を使用してコレクションから削除されます。
'equals'と' hashCode'を契約に従ってオーバーライドすると、 'borrower'のような潜在的に変更可能なフィールドに特別な注意が払われます。 IDEから自動生成されたこれらのメソッドの実装では、これらのフィールドがすべて含まれています。たとえば、あなたが実際に借り手を持っている "本物の"本を見つけたり削除したりするために借り手を知らず、書籍オブジェクトを構築するコードの1つの場所でも、これはうまくいきません。 –
実際の問題は何ですか? –
は、パラメータとして渡すオブジェクトを削除できません。 – niki123
'public class SetOfBooks extends Vector {'ではなく、 'public class SetOfBooksではありません。 extends Vector {'後者の場合、 'Book'は型変数であり、' Book'クラスではありません。 –