我想比较两个对象的ArrayList并根据对象中的ID从第二个ArrayList中查找不匹配的值。

例如:

人.java

private int id;
private String name;
private String place;

MainActivity.java:
ArrayList<Person> arrayList1 = new ArrayList<Person>();
arrayList1.add(new Person(1,"name","place"));
arrayList1.add(new Person(2,"name","place"));
arrayList1.add(new Person(3,"name","place"));

ArrayList<Person> arrayList2 = new ArrayList<Person>();
arrayList2.add(new Person(1,"name","place"));
arrayList2.add(new Person(3,"name","place"));
arrayList2.add(new Person(5,"name","place"));
arrayList2.add(new Person(6,"name","place"));

我想比较arrayList1,arrayList2,并且需要从arrayList2查找不匹配的值。
我需要id值5,6。

我怎样才能做到这一点?

最佳答案

您可以使用一个内部循环来检查arrayList2中的Person ID是否对应于arrayList1中的任何Person ID。您将需要一个标志来标记是否找到了某人。

ArrayList<Integer> results = new ArrayList<>();

// Loop arrayList2 items
for (Person person2 : arrayList2) {
    // Loop arrayList1 items
    boolean found = false;
    for (Person person1 : arrayList1) {
        if (person2.id == person1.id) {
            found = true;
        }
    }
    if (!found) {
        results.add(person2.id);
    }
}

关于Android : Compare two ArrayList of objects and find unmatching ids from the second ArrayList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28582099/

10-08 23:05