インタビューで、100 個の名前を格納するためにどのような構造を使用するかを尋ねられました: NSDictionary
orNSArray
とその理由。
最良の答えは何ですか?
彼は、名前が存在するかどうかを知りたいと言った.
インタビューで、100 個の名前を格納するためにどのような構造を使用するかを尋ねられました: NSDictionary
orNSArray
とその理由。
最良の答えは何ですか?
彼は、名前が存在するかどうかを知りたいと言った.
これは自由回答式の質問であり、インタビュアーはおそらく、あなたの思考過程とあなたが尋ねる質問にもっと関心を持っています。オブジェクトを列挙する必要があるだけの場合、IMO の短い答えは NSArray です。キーでオブジェクトを検索する必要がある場合は NSDictionary 。メンバーシップを確認するだけの場合は、NSSet を使用します。もちろん、これはアイテムの量や使用方法によって異なります。100個のアイテムで、おそらく6つ、1/2ダースです。さらに、コードの読みやすさと理解のしやすさの問題です。
各コレクションのパフォーマンスに関する考慮事項の優れた外観については、この古くても時代遅れではない記事をお読みください。http://www.cocoawithlove.com/2008/08/nsarray-or-nsset-nsdictionary-or.html
パフォーマンスの側面に重点を置いていますが、これには2つの良い説明があると思いますhttps://stackoverflow.com/a/10545362/1415348
実際には、データをどうしたいかによって異なります。
そして、彼らがそれをどのように使いたいかについてのより多くの情報で編集されたので、私はHot Licksに同意します.NSSetはそのために最適です. セット内の存在を判別するためのメソッド containsObject があります。NSSet クラス リファレンス
最善の答えは、要件を明確にするためにさらに質問することです。どんな名前?どの言語とロケールですか? それらはどのように使用されますか?それらは変化しますか、それとも静的ですか?ストレージまたはパフォーマンスに関する懸念はありますか? 等々。
おそらく、その目的は、あなたがデザインについてどのように考えているかを知ることでした. 彼らがそれ以上の質問に答えなかったとしても、彼らはおそらく、さまざまなデータ構造を使用する方法と、それらが意味をなす理由を説明するために提供される何らかの理由付けを期待していたでしょう.
彼らが一言の返事を期待していたのか、私は真剣に疑っています