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

2022-09-01 07:58:16

如何从 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>


答案 1

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;
}

答案 2

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

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

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


推荐