【发布时间】:2011-02-12 06:35:53
【问题描述】:
为了简单起见,假设我有一个包含类“books”的arraylist allBooks 和一个包含一些但不是全部“books”的arraylist someBooks。
当我想查看一个数组列表中的一本书是否也包含在另一个数组中时,使用 contains() 方法效果很好。
问题是,当我将两个 Arraylist 保存到 .bin 文件并在程序重新启动后将它们加载回来时,这不再起作用。进行与之前相同的测试,即使比较的对象相同(内部具有相同的信息), contains() 也会返回 false。
我通过重载equals方法解决了它,它工作正常,但我想知道为什么会发生这种情况?
【问题讨论】:
-
旁注:为什么不使用
List<Book>而不是ArrayList? -
您使用什么机制将它们写入磁盘?