使用意图

时间:2017-05-29 08:01:11

标签: java android arraylist

我有一个具有全局范围的空对象的arraylist。我需要从不同的活动向arraylist添加项目,也不要添加已经存在的项目(没有重复项)。

当项目从一个从意图中收到项目的活动添加到列表中时,我遇到了一个问题,即使列表中已包含该项目,该项目也会被添加。但是,该项目仅在活动开始时添加一次 但是,在完成活动并再次启动它时,会再次添加该项目,从而创建重复项。

我只是使用arraylist.contains(object)来检查对象是否存在于列表中。有什么方法我不能得到重复或删除它们吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试 HashSet

  

HashSet是Set Interface的实现,它不允许   重复值。

Row2.Height = 100;

答案 1 :(得分:1)

您需要覆盖自定义类的equals方法。

e.g。

public boolean equals(Object c) {
    if(c !instanceof CustomClass) {
        return false;
    }
    // TODO change to your type and change the methods
    CustomClass that = (CustomClass)c;
    return this.id.equals(that.getId()) && this.id.equals(that.getId());
}

然后你可以调用list.contains(obj)来查看列表是否已经包含一个相等的对象。将CustomClass更改为您需要的类型,如果需要,您可以添加更多检查。

更好的解决方案是使用Sets。查看here了解更多信息。