从Java中的ArrayList删除对象
ArrayList
如果满足条件,我需要从中删除一些对象,我想知道哪种方法会更有效。
情况如下:我有一个包含ArrayList
包含其他一些对象的类。我必须对此进行迭代,ArrayList
并删除满足特定条件的所有元素。据我所知,这些是我要删除的选项:
创建一个新的
ArrayList
并添加不符合条件的元素。迭代之后,从旧的数组列表交换到没有元素的新数组列表。创建一个新的
ArrayList
并添加满足条件的元素。迭代后,使用removeAll()
传递ArrayList
要删除对象的方法。
有没有更有效的方法从中删除对象ArrayList
?
回答:
另一种方式:迭代器具有可选的remove()方法,该方法针对ArrayList实现。您可以在迭代时使用它。
不过,我不知道哪种变体效果最好,应该对它进行测量。
starblue评论说,复杂性不好,这是正确的(对于removeAll()也是这样),因为ArrayList必须复制所有元素,如果中间是添加或删除的元素。对于这种情况,LinkedList应该更好地工作。但是,由于我们都不知道您的实际用例,所以最好的方法就是测量所有变体,以选择最佳的解决方案。
以上是 从Java中的ArrayList删除对象 的全部内容, 来源链接: utcz.com/qa/424365.html