Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除两个ArrayList的用户定义对象时不一致_Java_Arraylist - Fatal编程技术网

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

Java 删除两个ArrayList的用户定义对象时不一致,java,arraylist,Java,Arraylist,我有两个用户定义对象的数组列表。我想删除这两个数组中的公共元素。如果我尝试这样做,我会得到不一致的结果。这就是从两个数组列表中删除的项目数不同…下面是我使用的代码模板。有人能帮我吗 ` `它正在工作 ArrayList<String> userList1=new ArrayList<String>(); userList1.add("1"); userList1.add("7"); userList1.add("9"); userL

我有两个用户定义对象的数组列表。我想删除这两个数组中的公共元素。如果我尝试这样做,我会得到不一致的结果。这就是从两个数组列表中删除的项目数不同…下面是我使用的代码模板。有人能帮我吗

`

`它正在工作

    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]

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

您能为UserObject提供代码吗?你重写了equals方法吗?是的,我重写了equals方法…UserObject有许多其他用户定义的对象,所有这些对象都有相同的方法。不一致的结果是什么意思?根据您的代码,从每个列表中删除不同数量的项目是正常的,因为此数量取决于另一个列表中的项目。如果两个列表都有“x”项目,则应从右侧删除相同的“x”项目。@sameer是否允许列表中存在重复的对象?也就是说,如果一个列表是x、y、x,而另一个列表是x、y、z,从两个列表中删除“x”不会同时删除两个列表中相同数量的对象。Iam将用户定义的对象存储在数组列表中。@aashish_soni
    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]