2011-08-11 53 views

回答

16

你需要明白在像NSArray等基礎類中,不是你在開始的編程類中學習的數組等。特別是,它不具備通常與陣列關聯的性能特徵。

在這一點上,有很多不錯的博客文章,例如,一個由Ridiculous Fish和另一個由Cocoa with Love

因此,正如其他人所說,只需使用NSMutableArray

+0

對於大型集合,數組具有可怕的插入/刪除性能 – jjxtra

+10

是的,但是'NSMutableArray'不是數組。 – Yuji

+0

D'oh!這解釋了它。如果NSMutableArray是一個向量或動態數組,則爲 – sudo

12

NSMutableArray與此最接近。儘管有這個名字,但它比列表更接近列表。但是,「根據this,」從任一端追加和刪除元素需要一定的時間「

而且,你看這個,一個第三方的實現:https://github.com/mschettler/NSLinkedList

+6

+1'NSArray'內部有一噸*優化,使用內置解決方案始終是最佳選擇。由於追加到任一端是一個常量時間操作,所以對實際鏈表的需求被否定,因爲'NSArray'已經具有所需的性能特徵。 –

+0

你有這些附加和刪除性能特徵的來源嗎? Ctrl + F不會出現在文檔中引用的行。 – Joren

+0

對不起 - 它來自不同的頁面:) –

4

沒有直接等同。自己編寫鏈表很容易,但我懷疑你會獲得很多性能,與NSMutableArray相比。

在開源CHDataStructures中有幾個不同的鏈表實現。

1

NSMutableArray是一個向量或動態數組,但它是而不是的鏈接列表。

+0

。 Objective-C中的鏈表將會是什麼並等同於鏈表? – user2924482

相關問題