我有两个arrayList可以包含0个或多个int,我需要根据这两个值创建一个新的arrayList。在这种情况下[4,23]



arrayList1 [3 ,4 ,7,23,12]
arrayList2 [13,4,17,23,15]


在此示例中,我需要一个包含arrayList的新[4,23]

有没有一种简单的方法可以用.contains()或类似的方法来做到这一点。还是我应该
遍历两个列表并检查是否相等并创建新列表?

知道一个或另一个arrayList可以为空。

谢谢

最佳答案

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

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


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

arrayList1.retainAll(arrayList2);


如果这是您在逻辑上谈论的内容,则应强烈考虑使用集合。

09-12 11:52