2016-10-14 38 views
1

我想知道哪個集合可以提供更好的性能。如果需要的結果是獲得非重複的排序收集。什麼是更快? 1)添加元素到treeset VS 2)添加到Hashset然後排序哈希集元素

  1. TreeSet中 - O(nlogn)
  2. HashSet的 - 增加n個元素給出爲O(n),然後使用排序collection.sort()給出O(nlogn)

理論上都給出相同的,但想知道如果傳入的輸入長度超過100K,它是否真的有所作爲。也可能是什麼原因?

+4

嘗試一下,然後告訴我們;) –

+0

大聲笑,我試着得到第二種方法更快的100個輸入。但不明白爲什麼。 – DaenKhaleesi

+1

因爲管理紅黑樹的開銷不小。 – Andreas

回答

2

Collections.sort()在內部使用TimSort,這可能比將元素添加到TreeSet中快一點。更重要的是,HashSet和Collections.sort()的內存開銷應該低於TreeSet。