如何找到常见的ArrayList元素?

时间:2015-03-03 17:57:52

标签: java arraylist

我需要比较两个ArrayList(它们不一定大小相等)并创建一个新的ArrayList,它包含list1和list2的所有常见元素。有没有比将list1的所有元素与list2的所有元素进行比较更有效的方法?

2 个答案:

答案 0 :(得分:1)

我想说为了获得最佳效率,只需循环遍历两个列表中较小的一个,并在访问较长列表时使用contains方法。

for(int i = 0; i < listA.length(); i++) {
  if(listB.contains(listA.get(i)) {
    commonList.add(listA.get(i);
  }
}

答案 1 :(得分:0)

你可以Apache Commons Collections来做这件事。您正在寻找的是CollectionUtils.intersection(Iterable a, Iterable b)方法。