如何更快地减去这些列表?

use*_*411 11 java performance android arraylist

我想减去两个ArrayLists,这样我就可以让孩子不在另一个列表中.

我是这样做的:

removeIDs=(ArrayList<Integer>) storedIDs.clone();
removeIDs.removeAll(downloadedIDs);

downloadIDs=(ArrayList<Integer>) downloadedIDs.clone();
downloadIDs.removeAll(storedIDs);
Run Code Online (Sandbox Code Playgroud)

问题是两个列表都包含5000个孩子,我的androidphone需要大约4秒钟.

有没有快速的方法来做到这一点?是否更快地使用集合?(我在列表中没有重复的值)

我开发了一个Android应用程序

Chr*_*per 7

除非您需要保留订单,否则请使用HashSet而不是ArrayList.

删除元素需要扫描完整列表以进行列表实现,比较HashSet只是计算哈希码,然后识别目标桶.