我正在尝试根据List<Object> aggregated
和List<Object> pool1
创建List<Object> pool2
。这里主要关注的是性能,因为我们必须将pool1
中的每个对象与pool2
中的每个对象进行比较。 List
是必要的最佳选择吗?
上面的错误代码版本:
List<Object> pool1 = new ArrayList<>();
List<Object> pool2 = new ArrayList<>();
List<Object> matchingObjects = new ArrayList<Object>();
for (Object p1 : pool1) {
for (Object p2 : pool2) {
if (p1.equals(p2)) {
matchingObjects.add(p1);
}
}
}
答案 0 :(得分:0)
retainAll
会在两个列表之间提供common
个元素
pool1.retainAll(pool2);
//pool1 contains elements common between two lists
如果你想要一个共同元素的saparate列表而不是下面的过程
List<Object> matchingObjects = (ArrayList<Object>)pool1.clone();
matchingObjects.retainAll(pool2); // now matchingObjects will contain all the common elements