在Java中,我們可以使用list.remove(Object o)方法從列表中刪除對象,此方法使用對象的equals方法標識列表中的元素。但是,這要求我們重寫equals方法(否則將使用equals方法的默認實現,這涉及比較引用)。但是,如果我們正在處理一系列對象並且開發人員沒有權利更改對象的源代碼以實現equals方法,那我們該怎麼辦?我想知道爲什麼java沒有提供像list.remove(Object o,Comparator c)這樣的方法,因爲那麼我們可以根據自定義相等條件(由比較器實現)刪除對象,解決這個問題的任何解決方案?如何從列表中刪除對象
2
A
回答
2
如果您想要任何更復雜的事情,您可以隨時迭代自己,執行所需的任何比較,然後使用List.remove(int)
按索引刪除。
1
我寫了一個小的框架是:
實現:
http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/util/Matcher.html
然後使用:
http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/util/Matchers.html
庫是開源的,可以從以下地址下載這裏:
http://sourceforge.net/projects/softsmithy/files/softsmithy/v0.1/
或者使用Maven:
<dependency>
<groupId>org.softsmithy.lib</groupId>
<artifactId>lib-core</artifactId>
<version>0.1</version>
</dependency>
相關問題
- 1. 從對象列表中刪除對象
- 2. 刪除對象從列表
- 3. 從列表中刪除對象
- 4. 無法從列表中刪除對象
- 5. 從列表中刪除特定對象
- 6. 從C++列表中刪除對象
- 7. 從列表中刪除對象
- 8. 如果列表對象包含東西從列表中刪除
- 9. 如何從jQuery中的列表中刪除對象
- 10. 如何刪除對象的Python列表
- 11. 從python中的對象列表中刪除對象
- 12. 如何從地圖列表中刪除特定對象?
- 13. 如何從列表中刪除空對象(不是值)
- 14. 如何從python列表中刪除對象的實例?
- 15. 如何從列表中刪除對象<T>
- 16. Java。如何從兩個列表中刪除重複的對象
- 17. 如何從C++列表中刪除對象?
- 18. python3如何從列表中刪除線程對象
- 19. 如何從列表中刪除dulipate對象
- 20. Python。如何從列表中刪除一個對象
- 21. 如何從列表中刪除字符串對象?
- 22. 如何從對象列表中刪除雙胞胎?
- 23. 如何從列表中刪除特定的對象<T>
- 24. 如何從對象列表項中刪除填充?
- 25. 如何從綁定源中刪除對象不影響列表中的對象
- 26. 刪除對象::列表
- 27. 無法從另一個對象的列表中刪除對象
- 28. 從另一個列表中刪除對象列表
- 29. 從列表中與列表刪除重複作爲對象
- 30. 從嵌套子列表中刪除對象的空列表
這是複雜的,如果我有,例如三個對象刪除,那麼我將不得不遍歷非常仔細和刪除,因爲每次我刪除對象,列表的大小減少,因此如果我使用for循環(迭代直到達到列表的初始大小)可能會發生異常(因爲可能會嘗試刪除索引上的對象高於實際大小)...這我想避免 – Gaurav 2012-03-10 19:33:28
@Gaurav:典型的解決方案是*要麼*每次檢查列表的大小(並減少索引)或迭代te從頭到尾。 – 2012-03-10 19:38:40
或者,使用'Iterator.remove()'。 – 2012-03-10 20:38:27