2011-08-11 13 views

答えて

16

NSArrayなどのファンデーションクラスでは、は、初心者のプログラミングクラスで学んだことではないことを理解する必要があります。特に、通常は配列に関連付けるパフォーマンス特性はありません。

この時点で、多くの素晴らしいブログ投稿があります。 1つはRidiculous Fishで、もう1つは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

関連する問題