我需要过滤一个ArrayList并删除找到的元素。对于Java相对较新,我想知道最有效的方法是实现这个目标(因为它在移动设备上运行)。目前我这样做:Java:高效的ArrayList过滤?
// We display only top-level dealers (parentId=-10)
ArrayList<DealerProductCount> subDealers = new ArrayList<DealerProductCount>();
for (DealerProductCount dealer : wsResponse.Dealers) {
if (dealer.ParentId != -10) subDealers.add(dealer);
}
wsResponse.Dealers.removeAll(subDealers);
它可以做到没有临时对象?也许通过直接操作(删除)迭代列表中的元素?
还有其他数据结构的项目删除更有效。从LinkedList中删除将具有O(n)性能。从HashMap中删除将具有恒定的时间性能。 – 2011-06-08 15:40:33