很难帮助,因为你没有告诉我们 如何 你想比较(大小相等)的集合。一些想法,希望能适合:
比较两个集合,如果它们包含相同顺序的相同对象
Iterator targetIt = target.iterator();for (Object obj:source) if (!obj.equals(targetIt.next())) // compare result -> false
比较两个集合(如果它们以任意顺序包含相同的对象)
for (Object obj:source) if (target.contains(obj)) // compare result -> false
在其他集合中查找已更改的元素
Iterator targetIt = target.iterator();for (Object obj:source) if (!obj.equals(targetIt.next()) // Element has changed
根据您的评论,此算法可以做到。它收集所有已更新的汽车。如果方法结果为空列表,则两个集合均包含相同顺序的相等条目。该算法 依赖
于正确实施
equals()的
Car类型!
public List<Car> findUpdatedCars(Collection<Car> oldCars, Collection<Car> newCars) List<Car> updatedCars = new ArrayList<Car>(); Iterator oldIt = oldCars.iterator(); for (Car newCar:newCars) { if (!newCar.equals(oldIt.next()) { updatedCars.add(newCar); } } return updatedCars;}


