我在我的arraylist中有重複項,並希望刪除這些重複項以使其不同。我嘗試使用hastable來擺脫重複,但它毀了命令。如何在不更改廣告訂單的情況下將其分開?使arraylist不同
回答
如何:
using System.Linq;
myArrayList = new ArrayList(myArrayList.Distinct().ToArray());
或
var myArray = myArrayList.Distinct().ToArray();
'ArrayList'不需要'IEnumerable
我通常不會使用ArrayLists,我使用的集合通常會收到以及IEnumberable
感謝那些信息,但是你不能在arralist上使用Distinct()。我不得不將我的數組列表轉換爲數組,然後使用distinct,然後將其轉換回數組列表。雖然我能夠在你的幫助下到達那裏。謝謝! – m0g 2011-05-18 18:58:28
哈希表確實聽起來是個不錯的主意。
foreach object in the ArrayList:
if (object in hashtable)
{
remove object from ArrayList. (instead of object you can use object's hash)
// (notice, the ArrayList's indexes will change after you remove!)
}
else
{
insert object to Hashtable. (instead of object you can use object's hash)
}
這個運行後,你將有隻有每個對象的第一實例。
注意你不必使用HashTable,即使是另一個ArrayList就足夠了。不過我會用hashtable去,因爲hashtable中的搜索/插入在一般情況下是O(1),而arraylist中的二進制搜索是O(log(n))。
如果他們是重複的,第一個或最後一個實例將無關 – 2011-05-18 18:04:19
@Angelo,我想我不太瞭解您的意見... 顯然,如果有重複的重複實例是不相關的,但你需要找到它以便將其刪除... – TCS 2011-05-18 18:11:46
塞巴斯蒂安是對的。從技術上講,如果您試圖避免重複,請使用不支持重複的集合。使用一個Hashtable,循環訪問你的ArrayList並將它們彈出。如果所有的代碼都是你的,看看你是否可以重構,以便你不使用ArrayList
- 1. 回到ArrayList和使用不同類
- 2. 在不同類別中使用Arraylist
- 3. ArrayList到不同的類
- 4. 在不同的類上使用相同的ArrayList
- 5. 使用相同的writeToFile在java中編寫不同的arraylist
- 6. 不要使用ArrayList!
- 7. Java ArrayList:從包含HashMap的ArrayList中獲取不同的值
- 8. 另一個arraylist到另一個不同類型的arraylist
- 9. Clonning ArrayList元素到相同的ArrayList
- 10. 映射表的ArrayList不同大小
- 11. ArrayList不斷填充相同的數據
- 12. android通過不同的arraylist填充listview
- 13. 比較不同類型的ArrayList
- 14. Java/Android ArrayList中的不同活動
- 15. 從不同功能打印ArrayList
- 16. List和ArrayList有什麼不同?
- 17. 轉換不同類型的ArrayList
- 18. 從不同的方法打印ArrayList
- 19. 從不同的類訪問ArrayList
- 20. 從不同的類訪問ArrayList
- 21. 同步的arrayList不兼容的類型
- 22. ArrayList不同方法的作用域
- 23. 不同類別的對象排序arraylist
- 24. java ArrayList包含不同的對象
- 25. 用不同類的ArrayList填充JComboBox
- 26. 來自不同類的對象ArrayList
- 27. Java的ArrayList的治療不同的元素不同
- 28. 將txt文件的不同行讀入不同的ArrayList
- 29. 同步訪問ArrayList
- 30. 同步一個ArrayList
我們正在談論的集合有多大? – 2011-05-18 17:58:57
@Sebastian,這個問題是Java。 – 2011-05-18 17:59:56