删除两个ArrayLists的用户定义对象时不一致

时间:2014-07-07 10:44:30

标签: java arraylist

我有两个用户定义对象的数组列表。我想删除两者中的公共元素。如果我尝试这样做,我会得到不一致的结果。这是从两个中删除的项目数arrayList是不同的...下面是我使用的代码模板..任何人都可以帮助我..?

`

 ArrayList<UserObject> userList1=new ArrayList<UserObject>();
 ArrayList<UserObject> userList2=new ArrayList<UserObject>();
 //code to initialse values into both userList
 ArrayList<UserObject> copyOfUserList1=new ArrayList<UserObject>(userList1);
 userList1.removeAll(userList2);
 userList2.removeAll(copyOfUserList1);

`

2 个答案:

答案 0 :(得分:0)

它正在运作......

    ArrayList<String> userList1=new ArrayList<String>();
    userList1.add("1");
    userList1.add("7");
    userList1.add("9");
    userList1.add("4");

    ArrayList<String> userList2=new ArrayList<String>();
    userList2.add("1");
    userList2.add("5");
    userList2.add("3");
    userList2.add("4");

    ArrayList<String> copyOfUserList1=new ArrayList<String>(userList1);
    userList1.removeAll(userList2);
    userList2.removeAll(copyOfUserList1);

    System.out.println(userList1);
    System.out.println(userList2);


    output:
                [7, 9]
                [5, 3]

答案 1 :(得分:0)

我解决了这个问题;我已经覆盖了equals方法,问题是我在equals方法中使用了contains,当调用和被调用对象发生变化时会产生不一致的结果。