很多人都说ArrayList.removeAll
对于大型数组确实很慢。
此article为ArrayList.removeAll速度提供了两个优化的解决方案,但需要在类本身中实现它们,并且不能在外部用作修复程序。
除了复制ArrayList源代码并使用我自己的版本之外,是否有任何方法可以应用这种修复程序?
编辑:我想我应该为此添加我的需要,因为没有ArrayList.removeAll,可能有一种方法可以做我想做的事情。
我每个人都有大约70,000 longs
的两个列表。它们几乎是相同的,但是一个列表包含的数字更多,而第二个列表则没有,我想找到它们。我知道找到它们的唯一方法是执行first.removeAll(second)
来找到它们之间的区别。还有另一种方法吗?
最佳答案
如何使用具有更好删除时间的数据结构(例如HashSet或TreeSet)呢?因此,使用数组列表的主要原因是访问记录的访问时间为O(1)。但是,如果您尝试设置差异,那么也许应该使用集合。只是一个想法。
关于java - 优化ArrayList.removeAll,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6804238/