我一直在遇到類似下面的代碼的技術,我需要從列表中篩選出一種枚舉類型。刪除列表中的項目類型
有沒有更有效的方法來做到這一點?
private List<TestResult> removeInfo(List<TestResult> testResults) {
List<TestResult> tmpT = new ArrayList<TestResult>();
for(TestResult t : testResults) {
if(!t.getSeverity().equals(Severity.INFO)) {
tmpT.add(t);
}
}
return tmpT;
}
收藏將是我的第一個想法,但不確定。
乾杯 d
我想你會通過使用一個實際的迭代器和一個LinkedList來得到一些改進,因爲清除將是O(1)。 http://stackoverflow.com/questions/322715/when-to-use-linkedlist-over-arraylist – Marvo
這些對象是如何在列表中結束的?我的意思是在這裏刪除'Severity.INFO',但另一部分代碼創建和使用它的權利? – Cratylus
正確,它確實被使用,但在這種情況下它是這樣的,所以我不必將許多嚴重性.INFO傳遞到前端 - 只需要使用警告和錯誤 – dale