gpt4 book ai didi

java - 包含整数值的 2 个 ArrayList 的交集结果

转载 作者:行者123 更新时间:2023-12-01 19:03:05 25 4
gpt4 key购买 nike

我有两个 ArrayList 都包含 Integer 值。我的目标是比较这两个列表获得相同/共同/重复的值。换句话说(用 SQL 术语来说),我需要 INTERSECT两个列表的结果,即两个列表中都出现的值。

示例:

ArrayList<Integer> list1 = new ArrayList<Integer>();
list1.add(100);
list1.add(200);
list1.add(300);
list1.add(400);
list1.add(500);

ArrayList<Integer> list2 = new ArrayList<Integer>();
list2.add(300);
list2.add(600);

我可以想到的一种实现/解决方案是循环列表之一,例如:

ArrayList<Integer> intersectList = new ArrayList<Integer>();

for (Integer intValue : list1)
{
if(list2.contains(intValue))
intersectList.add(intValue);
}

在这种情况下,intersectList 将仅包含添加的 1 个Integer 项,即 300,它出现在两个列表中。

我的问题是,有没有更好/最快/有效的方法来实现这个逻辑? Apache Commons 中提供的任何选项图书馆?。如有任何其他想法/建议/评论,我们将不胜感激。

注意:出于说明目的,我仅在此处显示了 5 个项目和添加到列表中的 2 个项目。在我的实时实现中,每个列表中会有超过 1000 个元素。因此,性能也是一个需要考虑的关键因素

最佳答案

如果您同意覆盖 list1 的结果:

list1.retainAll(list2);

否则先克隆/复制list1。

但不确定性能。

关于java - 包含整数值的 2 个 ArrayList 的交集结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11468624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com