如何获取两个ArrayLists的重复值?

Mar*_*ark 2 java arraylist duplicates array-merge

假设我有2个ArrayList of Points:

  1. (0,2)->(0,3)->(0,4)
  2. (0,2)->(0,3)->(0,6)

我想获得一个新列表: (0,2)->(0,3)

我怎么做?

当前解决方案

使用两个foreach循环逐个元素地比较两个列表.我认为这是一种非常低效的方式.还有其他方法吗?

Kon*_*kov 6

您可以使用以下List#retainAll(Collection<?> c)方法:

仅保留此列表中包含在指定集合中的元素(可选操作).换句话说,从该列表中删除未包含在指定集合中的所有元素.

List<Point> first = ...
List<Point> second = ...
first.retainAll(second);
Run Code Online (Sandbox Code Playgroud)