我目前有List
个对象。通过以下方式删除对象:
if (mProducts.contains(orderProduct)) {
mProducts.remove(orderProduct);
.
.
然而List
的javadoc状态
从此{@code List}中删除指定对象的第一个匹配项。
我需要从列表中删除给定的对象,而不仅仅是第一个对象。这里的正确方法是什么?我可以提供自己的List.remove实现或使用替代数据结构吗?
谢谢, Otterman
答案 0 :(得分:1)
在Java中,List使用equals()作为其包含和删除(Object o)方法,如所述here
在其中一个答案评论中,还指出Java使用引用比较作为默认值。
也许您可以覆盖产品的equals()方法以获得您想要的效果。