Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较相同类型对象的两个列表_Java_Sorting_Collections_Arraylist - Fatal编程技术网

Java 比较相同类型对象的两个列表

Java 比较相同类型对象的两个列表,java,sorting,collections,arraylist,Java,Sorting,Collections,Arraylist,假设我有两个列表,现在listOld包含旧员工信息,listNew包含新员工信息 Employee { long lastUpdate; } List<Employee> listOld; //ArrayList List<Employee> listNew; 员工{ 长期更新; } 列表列表//ArrayList 新列表; 如何比较这两个列表并返回新列表,其中包含已添加的新员工列表、包含已删除的员工列表、包含上次更新已更改的员工的新列表 我只能考虑对列表进行

假设我有两个列表,现在listOld包含旧员工信息,listNew包含新员工信息

Employee {
   long lastUpdate;
}

List<Employee> listOld; //ArrayList
List<Employee> listNew;
员工{
长期更新;
}
列表列表//ArrayList
新列表;
如何比较这两个列表并返回新列表,其中包含已添加的新员工列表、包含已删除的员工列表、包含上次更新已更改的员工的新列表


我只能考虑对列表进行迭代和比较,结果可能是几乎O(n2)次,这可以由任何util类更有效地完成吗?

Apache的commons.collections库有一个CollectionUtils类。 该类提供用于集合检查的方法,包括交集、差集和并集


请参阅:

Apache commons CollectionUtils可以解决前两种情况,如果你认为使用这个库是合适的。如果你关心性能:你应该意识到这些UTIL类通常仍然做你想做的事情——这意味着它不一定更快地使用Apache CAMONS,而不是考虑你自己的速度,如果你考虑速度的话,您可以先将列表转换为哈希表,然后对其使用集合库。这会把你从O(n^2)降到O(n)和O(n*ln(n))之间