違いは何ですか?
私のコンテキストでは、オブジェクトを動的に追加および削除できる必要があります。ユーザーは、オンとオフを切り替えるテーブルの行をクリックして、参照されているオブジェクトをリストに追加またはリストから削除します。
セットにはインデックスがないのに、配列にはインデックスが付けられているというのは大げさな推測ですか?
違いは何ですか?
私のコンテキストでは、オブジェクトを動的に追加および削除できる必要があります。ユーザーは、オンとオフを切り替えるテーブルの行をクリックして、参照されているオブジェクトをリストに追加またはリストから削除します。
セットにはインデックスがないのに、配列にはインデックスが付けられているというのは大げさな推測ですか?
NSSet
/は、NSMutableSet
アイテムを特定の順序で保持しません。NSArray
/は、アイテムを特定のNSMutableArray
順序で保存します。テーブルビューを作成する場合は、データソースとして配列を使用する必要があります。
また、NSMutableSetは、すべてのオブジェクトが一意であることを確認します。
NSMutableArrayは、要素にインデックスがあるためUITableViewとうまく調和します。したがって、[array count]を返してテーブルの行数を取得したり、[array objectAtIndex:rowNumber]を返して要素を行に簡単に関連付けることができます。
また、ドキュメントによると、オブジェクトメンバーシップのテストはNSSetを使用するとより高速になります。
要素の順序が重要でなく、オブジェクトがセットに含まれているかどうかをテストするパフォーマンスが考慮される場合は、配列の代わりにセットを使用できます。配列は順序付けられていますが、メンバーシップのテストはセットよりも遅くなります。
さて、3つの主な違いがあります。1)セットは順序付けされていません2)インデックスを持たない&3)配列が順序付けられ、インデックスが付けられ、重複する値を格納できる場合、重複する値を使用することはできません。