从另外两个arrayList创建一个arrayList,并且只保留两个arrayList中相同的值

时间:2014-06-12 13:40:52

标签: 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或类似的方法有一种简单的方法吗?或者我应该 循环遍历两个列表并检查是否相等并创建新列表?

知道一个或另一个{{1}}可以为空。

谢谢

2 个答案:

答案 0 :(得分:2)

您只需使用retainAll

即可
list1.retainAll(list2);

或者如果您不想修改list1

List<Integer> intersection = new ArrayList<>(list1);
intersection.retainAll(list2);

答案 1 :(得分:2)

使用集合会更有效,但即使只是使用列表,使用retainAll也很简单:

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

假设您想要修改arrayList1。如果您不介意,可以跳过第一步:

arrayList1.retainAll(arrayList2);

你应该强烈考虑使用套装,如果那是你在逻辑谈论的内容。