Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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创建arrayList,并仅保留两个arrayList中相同的值_Java_Arraylist - Fatal编程技术网

Java 从另外两个arrayList创建arrayList,并仅保留两个arrayList中相同的值

Java 从另外两个arrayList创建arrayList,并仅保留两个arrayList中相同的值,java,arraylist,Java,Arraylist,我有两个arrayList,它们可以包含0个或多个int,我需要从这两个列表中创建一个新的arrayList。在这种情况下,[4,23] 示例 arrayList1 [3 ,4 ,7,23,12] arrayList2 [13,4,17,23,15] 在这个例子中,我需要一个新的arrayList包含[4,23] 有没有一种简单的方法可以使用.contains()或类似的方法来实现这一点。还是我应该 循环浏览列表并检查是否相等,然后创建新列表 知道其中一个arrayList可以为空 谢谢您只需

我有两个
arrayList
,它们可以包含0个或多个
int
,我需要从这两个列表中创建一个新的
arrayList
。在这种情况下,
[4,23]

示例

arrayList1 [3 ,4 ,7,23,12]
arrayList2 [13,4,17,23,15]
在这个例子中,我需要一个新的
arrayList
包含
[4,23]

有没有一种简单的方法可以使用
.contains()
或类似的方法来实现这一点。还是我应该 循环浏览列表并检查是否相等,然后创建新列表

知道其中一个
arrayList
可以为空

谢谢

您只需使用:

或者如果您不想修改
列表1

List<Integer> intersection = new ArrayList<>(list1);
intersection.retainAll(list2);
列表交叉点=新的ArrayList(列表1);
交叉口。保留(列表2);
您只需使用:

或者如果您不想修改
列表1

List<Integer> intersection = new ArrayList<>(list1);
intersection.retainAll(list2);
列表交叉点=新的ArrayList(列表1);
交叉口。保留(列表2);

使用集合时效率更高,但即使仅使用列表,使用起来也很简单:


如果你在逻辑上讨论的话,你应该强烈地考虑使用SET。

这对集合来说是更有效率的,但是即使只是使用列表,使用起来也很简单:


如果你在逻辑上谈论这一点,你应该强烈地考虑使用集合。< /P>检查<代码> java .UTL。SET//C>界面,我想这就是你要找的。是的,谢谢你检查<代码> java。UTIL.SET/<代码>界面,我想这就是你要找的。是的,谢谢。这正是我要找的。我想我会在这个问题上投反对票。。。谢谢完美,这正是我想要的。我想我会在这个问题上投反对票。。。谢谢你我给了@Jon一个被接受的答案,因为他给了我一些考虑使用集合更有效的建议,但是如果我能接受这两个,我也会接受你的。多谢各位+1@Lorenzo没问题。很高兴在任何情况下我都能帮忙!:-)我对@Jon给出了公认的答案,因为他给了我一些考虑使用集合更有效的建议,但如果我能同时接受这两个,我也会接受你的建议。多谢各位+1@Lorenzo没问题。很高兴在任何情况下我都能帮忙!:-)

// Start by copying arrayList1
List<Integer> result = new ArrayList<Integer>(arrayList1);
result.retainAll(arrayList2);
arrayList1.retainAll(arrayList2);