我需要過濾一個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