如何从 Java 中的 ArrayList 中删除特定对象?

新手上路,请多包涵

如何从 ArrayList 中删除特定对象?假设我有一个类如下:

 import java.util.ArrayList;
public class ArrayTest {
    int i;

    public static void main(String args[]){
        ArrayList<ArrayTest> test=new ArrayList<ArrayTest>();
        ArrayTest obj;
        obj=new ArrayTest(1);
        test.add(obj);
        obj=new ArrayTest(2);
        test.add(obj);
        obj=new ArrayTest(3);
        test.add(obj);
    }
    public ArrayTest(int i){
        this.i=i;
    }
}

如何使用 new ArrayTest(1) 从我的 ArrayList<ArrayList> 中删除对象

原文由 sAaNu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 615
2 个回答

ArrayList 基于 equals(Object obj) 方法删除对象。所以你应该正确地实现这个方法。就像是:

 public boolean equals(Object obj) {
    if (obj == null) return false;
    if (obj == this) return true;
    if (!(obj instanceof ArrayTest)) return false;
    ArrayTest o = (ArrayTest) obj;
    return o.i == this.i;
}

或者

public boolean equals(Object obj) {
    if (obj instanceof ArrayTest) {
        ArrayTest o = (ArrayTest) obj;
        return o.i == this.i;
    }
    return false;
}

原文由 Valchev 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您使用的是 Java 8 或更高版本:

 test.removeIf(t -> t.i == 1);

Java 8 在集合接口中有一个 removeIf 方法。对于 ArrayList,它有一个高级实现(n 阶)。

原文由 Tmh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题