2016-04-06 24 views
0

ArrayList 方法與設置重複過濾有什麼區別和使用它的優點?ArrayList contains()方法與設置重複過濾的區別

+0

您應該參加一個關於數據結構和算法的類 – ControlAltDel

+0

如果該對象包含在ArrayList中,則ArrayList.contains()方法返回true。你能否詳細說明重複過濾_? – sshah

+0

在設置中插入值時不允許重複。但是我們可以使用contains方法在arrayList中實現相同的功能。那麼爲什麼我們需要使用set來設置獨特的元素。請說明使用set(在性能等方面是否有任何優勢) –

回答

0

如果您有Set,它可以確保它不能包含基於equals的重複元素。使用List,它不會自動執行。你將不得不使用

if(!list.contains(element)){ 
    list.add(element); 
} 

What is the difference between Set and List?

看到至於性能方面,它取決於你的使用模式。這取決於你經常進行哪些操作。無論如何,如果你沒有任何特殊的要求來優化性能,你可以使用Set,因爲它使你的意圖更清晰。

+0

謝謝您的回答,但是我想知道是否有任何性能優勢,如果我們使用Set而不是ArrayList包含()方法,同時添加元素。最佳做法是什麼?爲什麼? –

+0

@PavithraReddy:更新了我的答案 – user140547

0

設置保證不重複。如果你想有一個沒有重複的集合,使用Set意味着你不需要自己做重複的消除。所以你需要編寫,測試和調試更少的代碼。這使你更有成效。您可以使用Set實現中的代碼替換您可能編寫的代碼。由於該代碼的編寫者可能比您的編程人員要好得多,因此相比您可編寫的代碼,該代碼效率更高,而且運行起來更少。特別是HashSet實現過去的插入。任何人閱讀你的代碼(包括未來你)的代碼,而不是一個集合或列表,可以立即看到該集合沒有重複。它使您的代碼部分可靠地記錄自己。