从arraylist中删除项目

时间:2014-01-22 05:48:56

标签: java arraylist

在ArrayList中,我有相同类型的对象。每个对象都有一个id,name和number作为其字段。有可能多个对象具有相同的电话号码。如何使ArrayList以所有ArrayList对象具有不同的电话号码的方式制作?

3 个答案:

答案 0 :(得分:1)

在您的班级方法equals()hashCode()中覆盖。在等于您将通过电话号码进行比较。从您的电话号码生成哈希码。

现在您已准备好使用Set界面,该界面会自动按电话号码比较您的对象并排除重复项。

以下示例:

public class Test {
    private int id;
    private String name;
    private String phoneNumber;

    public Test(int id, String name, String phoneNumber) {
        this.id = id;
        this.name = name;
        this.phoneNumber = phoneNumber;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Test test = (Test) o;
        return phoneNumber.equals(test.phoneNumber);

    }

    @Override
    public int hashCode() {
        return phoneNumber.hashCode();
    }
}

现在不使用List<Test> arr = ArrayList<Test>(),而是使用Set<Test> mySet = new HashSet<Test>()

答案 1 :(得分:0)

尝试Set.

不包含重复元素的集合。

答案 2 :(得分:0)

我想到的第一个解决方案是使用HashMap

只需创建一个HashMap,将'phonenumber'作为键,将对象作为值。添加所有元素后,您将拥有具有唯一电话号码的对象列表。只需对此进行迭代即可创建所需的List。