Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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
如何找到两个ArrayList之间的差异<;整数>;在Java中不使用Java8流?_Java_Android_Arrays - Fatal编程技术网

如何找到两个ArrayList之间的差异<;整数>;在Java中不使用Java8流?

如何找到两个ArrayList之间的差异<;整数>;在Java中不使用Java8流?,java,android,arrays,Java,Android,Arrays,这可能看起来像复制品,但不是,请通读结尾。 一些上下文:我正在构建一个连接到api的android应用程序。家具对象上有一个“Finishs”复选框,当我更新Finishs时,我必须将要删除的Finishs(复选框)发送回后端要删除的完成:[]并在数组中传递这些ID,同时添加完成是完成:[]。问题是,我想找到一种方法来区分由复选框生成的两个列表,旧列表和更新列表。因此,我可以填充要删除的完成:[] 我不能使用Java8流,因为我的API最低级别是15 当我尝试list.contains(list

这可能看起来像复制品,但不是,请通读结尾。
一些上下文:我正在构建一个连接到api的android应用程序。家具对象上有一个“Finishs”复选框,当我更新Finishs时,我必须将要删除的Finishs(复选框)发送回后端<代码>要删除的完成:[]并在数组中传递这些ID,同时添加完成是
完成:[]
。问题是,我想找到一种方法来区分由复选框生成的两个列表,旧列表和更新列表。因此,我可以填充要删除的
完成:[]

我不能使用Java8流,因为我的API最低级别是15

当我尝试list.contains(list2)时,它告诉我“list可能不包含list类型的对象

我只想返回第一个列表中但不在第二个列表中的项目,而不是1:1的比较。

list.contains()
采用与
列表
相同类型的元素,即
列表
允许您调用
list.contains(“某些字符串”)
,但不能将另一个
列表
传递到
.contains()

可以工作的示例函数如下所示:

public boolean <T> listContains(List<T> list1, List<T> list2) {
    for (T t : list1) {  // iterate through all elements of list1

        if (list2.contains(list1)) return true;  // check to see if list2 contains each element

    }

    return false;  // return false if no matches found
}

这将删除
list1
中包含在
list2

中的所有项目。我在其中编辑了问题和答案dupe@Compass第一个答案仍然是一个很好的方法,只有一件事需要提及:如果原始的
列表
包含重复项,将其转换为
将消除它们。
list1.removeIf(item -> list2.contains(item));