I am working in an Contact app where i have to list all the contacts from Contacts Database, but it contains duplicates.

For example, Contact number (98\*\*\*\*\*\*\*33, +9198\*\*\*\*\*\*\*\*33) is listed as duplicates.

I have used Set, Checked whether my list contains the phone number before adding but none of this works !

**ContactVO is the Pojo class and contactVoList is the list that i am adding contacts.**

```
   Cursor phones = getContext().getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
            while (phones.moveToNext()) {
                name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)).replace(" ", "");
                imageUri = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
                System.out.println("Name and Phone number = " + name + phoneNumber + imageUri);

                if (contactVOList.size() == 0) {
                    contactVOList.add(new ContactVO(imageUri, name, phoneNumber, false));
                } else {
                    if (!contactVOList.contains(phoneNumber)) {
                        contactVOList.add(new ContactVO(imageUri, name, phoneNumber, false));
                    }
                }

                System.out.println("List size before removing duplicates =" + contactVOList.size());
            }

            Set<ContactVO> s = new HashSet<ContactVO>();
            s.addAll(contactVOList);
            contactVOList = new ArrayList<ContactVO>();
            contactVOList.addAll(s);

```

My Pojo class

```
public class ContactVO {
    private String ContactImage;
    private String ContactName;
    private String ContactNumber;
    private int hashCode;
    String id;
    boolean clicked;

    public ContactVO(String id) {
        this.id = id;
    }

    public boolean isClicked() {
        return clicked;
    }

    public void setClicked(boolean clicked) {
        this.clicked = clicked;
    }

    public String getId() {

        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public ContactVO(String ContactImage, String ContactName, String ContactNumber, Boolean clicked) {
        this.ContactImage = ContactImage;
        this.ContactName = ContactName;
        this.ContactNumber = ContactNumber;
        this.clicked = clicked;
    }

    public String getContactImage() {
        return ContactImage;
    }

    public void setContactImage(String contactImage) {
        this.ContactImage = ContactImage;
    }

    public String getContactName() {
        return ContactName;
    }

    public void setContactName(String contactName) {
        ContactName = contactName;
    }

    public String getContactNumber() {
        return ContactNumber;
    }

    public void setContactNumber(String contactNumber) {
        ContactNumber = contactNumber;
    }

    @Override
    public boolean equals(Object obj) {
        // TODO Auto-generated method stubs
        if (obj instanceof ContactVO) {
            ContactVO temp = (ContactVO) obj;
            System.out.println("this.getctno" + this.getContactNumber());
            System.out.println("temp.getctno" + temp.getContactNumber());
            if (this.getContactNumber() == temp.getContactNumber() && this.getContactName() == temp.getContactName() && (this.getContactNumber()).contains(temp.getContactNumber()))
                return false;
        }
        return true;
    }

    @Override

    public int hashCode() {
        // TODO Auto-generated method stub
        return (this.getContactNumber().hashCode() + this.getContactName().hashCode());
    }
}

```