【发布时间】:2010-11-21 14:02:01
【问题描述】:
如果满足条件,我需要从ArrayList 中删除一些对象,我想知道哪种方式更有效。
情况如下:我有一个包含 ArrayList 的类,其中包含一些其他对象。我必须遍历这个ArrayList 并删除所有满足特定条件的元素。
据我所知,这些将是我删除的选项:
新建
ArrayList,添加不满足条件的元素。迭代后,从旧的数组列表交换到没有元素的新数组。新建
ArrayList,添加满足条件的元素。迭代后,使用removeAll()方法将ArrayList与要删除的对象一起传递。
有没有更有效的方法从ArrayList 中删除对象?
【问题讨论】:
-
除非你真的确定在代码中的这个特定点性能是一个问题,否则我建议忽略效率。您还应该考虑其他一些事情,例如:您是否在其他应反映更改的地方保留对原始列表的引用?那么你不能使用1。你可以使用
ArrayList.remove(),i。 e.equals()的语义是否像列表中的对象所需的那样工作? -
嗯,我正在谈论的对象包含一些数组列表,我必须对它们都做同样的事情。我不知道这是否会成为瓶颈(我还没有测试过),但我想知道你们如何删除项目,看看我是否有更好的选择。回答你的第二个问题:是的,我可以使用 remove() 方法。
标签: java performance memory-management arraylist