java - 有没有一种简单的方法可以从两个链表中删除同一个对象?

标签 java linked-list object-state

我有 2 个链接列表。

我在这两个列表中都有相同的对象。通过相同的对象,我的意思是该对象具有相同的状态,但由不同的对象指针引用。

我可以从第一个列表中调用 .remove(object); 来删除它,但是如果我对第二个列表执行相同的操作,它不会被删除(因为对象指针引用不同)

有没有一种简单的方法可以从不同的列表中删除具有相同状态的对象?

考虑一下,我可能会循环遍历第二个列表来比较其对象的状态,但我一直在寻找一种更干净的方法

最佳答案

重写对象的 equals 方法。如果它们具有相似的等效功能,则应将它们从两个列表中正确删除。

编辑 - 为了正确起见:

在重写 equals 方法时,您应该始终重写 hashCode 方法。如果不这样做,列表中可能不会显示任何奇怪的功能,但是一旦您尝试在 HashMap 中使用相同的对象,您可能会发现删除或放置可能无法按照您想要的方式运行。

关于java - 有没有一种简单的方法可以从两个链表中删除同一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079308/

相关文章:

java - 获取今天起的所有提交

ios - NSTimer递增一次后停止

java - 尽早终止 Iterable.forEach

java - AlertDialog 不显示文件列表

java - JPA 实现——哪一个最好用?

c++ - 如何从链表中删除节点?

c++ - 帮助链接列表模板

c - 按升序将值插入已排序的链表

c# - 在调试时序列化并打印对象的整个状态