Can Altunoz
Can Altunoz

Reputation: 1

Android ArrayList compare

Hi guys i got 2 ArrayList based on same class. I have to add from arraylist1 to arraylist2 non exist(s)ing rows. I tried to use contains but its always returning false. What i m doing wrong ? Ty

MyClass

public class HataKoduBean {
private String Oid;
private String Name;
private String Surname; 

}

How i define Arraylists

Arraylist<MyClass> array1 = new Arraylist<>(); Arraylist<MyClass> array2 = new Arraylist<>();

How i tried to compare ?

 for (int ii = 0; ii < array1.size(); ii++) {
                            if (!array2.contains(array1.get(ii)))
                                array2.add(array1.get(ii));  
                        }

Upvotes: 0

Views: 77

Answers (2)

Monir Khlaf
Monir Khlaf

Reputation: 567

First you have to implement equals() and hashCode() in your custom object and create loop and compare between object by using equals method like this.

implement equals and hashCode:

`@Override
    public boolean equals(Object o) {
        if (this == o)
            return true;
        if (o == null || getClass() != o.getClass()) 
           return false;
        HataKoduBean o = (HataKoduBean) o;
        return Oid != null?Oid.equals(HataKoduBean.Oid):HataKoduBean.Oid== null;
    }

    @Override
    public int hashCode() {
        return Oid != null ? Oid.hashCode() : 0;
    }`

compare Objects:

for (int ii = 0; ii < array1.size(); ii++) { if (!array2.get(ii).equals(array1.get(ii))) array2.add(array1.get(ii)); }

Upvotes: 0

Maxim G
Maxim G

Reputation: 1489

First you have to implement equals() and hashCode() in your custom class.

Consider to use Sets, so you can merge collections in one line with addAll().

Upvotes: 2

Related Questions