Java 在for循环中循环问题,同时避免重复条目

Java 在for循环中循环问题,同时避免重复条目,java,android,for-loop,Java,Android,For Loop,在所选联系人中,我有重复的值,以便iam首先复制所选联系人副本 for(int q=0;q<selectedcontact.size();q++) { selectedcontactcopy.add(selectedcontact.get(q)); } for(int q=0;q这是一种不好的唯一性检查方法。更好的方法是利用java.util.Set的功能-确保您的联系人实现可比较和比较固定电话号码,然后将其添加到集合中并迭代集合内容 Set保证您

在所选联系人中,我有重复的值,以便iam首先复制所选联系人副本

    for(int q=0;q<selectedcontact.size();q++)
    {
        selectedcontactcopy.add(selectedcontact.get(q));
    }

for(int q=0;q这是一种不好的唯一性检查方法。更好的方法是利用
java.util.Set
的功能-确保您的联系人实现可比较和比较固定电话号码,然后将其添加到集合中并迭代集合内容


Set保证您的唯一性,并提供比嵌套for循环更干净的接口。

使用
HashSet
避免从
ArrayList
重复值

大概

ArrayList arrayList = new ArrayList(); // Your ArrayList which contains repeated values
HashSet hashSet = new HashSet();
hashSet.addAll(arrayList);
arrayList.clear();
arrayList.addAll(hashSet);

删除重复元素的最简单方法是将内容添加到集合(不允许重复),然后将集合添加回ArrayList。

无需为此创建两个列表。 创建一个HashMap,其中键作为固定电话号码,值作为整个联系人对象

迭代列表“selectedContacts”,并将所有元素放入hashmap。 最后,迭代创建的hashmap,并将hashmap中的所有值存储到联系人列表中

希望有帮助。

选择ContactCopy.remove(r);如果条件解决了我的问题,则在内部。但这不是正确的方法。实际上,我必须使用下面用户所说的set
ArrayList arrayList = new ArrayList(); // Your ArrayList which contains repeated values
HashSet hashSet = new HashSet();
hashSet.addAll(arrayList);
arrayList.clear();
arrayList.addAll(hashSet);