2016-06-12 10 views
0

私はobjective-cを初めて使いました。アイテムの分類を可能にするための良いデータ構造を探しています。私は食べ物の種類を分類したいとしましょう。カテゴリーは肉、果物、野菜です。ユーザーが「りんご」を入力すると、そのりんごが果物のカテゴリに属していることを知りたいと思います。さらに、これらのカテゴリは変更可能である必要があります。したがって、ユーザが未知の食物を入力すると、それをカテゴリに割り当てることができ、カテゴリはこの新しいタイプの食物を覚えて更新される。アイテムを分類するためのObjective-Cデータ構造

私はNSMutableArrayを使用して見ました。私の考えは、私が食品の各カテゴリの配列を持つことになり、配列の要素はそのカテゴリに属する​​すべての食品になります。私はその後、一致するものが見つかるまで各配列を検索します。

カテゴリはあまりにも重くはありませんが(それぞれ<〜5,000件)、並べ替えをして迅速に検索できるようにするために十分な大きさです。

この問題を解決するには、どのような優れたデータ構造がありますか?

答えて

2

Objective-Cは、目的に役立つ3つのデータ構造(NSArray,NSSetおよびNSDictionary)を提供します。これらはまた、変更可能なフレーバーに入っており、NSSetは、オーダーを管理できるNSOrderedSetサブクラスも提供しています。あなたが使用する必要があることは、あなたのデータを主にやろうとしている業務のどの種類に依存

  • あなたは要素ごとに複数のカテゴリを割り当てる予定の場合は、各食品のインスタンスのNSMutableSetメンバーを持つことができます。
  • あなたがNSMutableArrayNSMutableSetのインスタンス、カテゴリごとに1つずつ持っており、特定のNSMutableSet
  • に食べ物を追加することができ、あなたはそのカテゴリー

に各食品をマップするしかし、あなたならば、まだそれが依存NSMutableDictionaryを持つことができます一方向または他方向に高速検索が必要です。ちょうど私が探していたものだけを高速検索(それは要素がNSSetに含まれているかNSDictionaryの特定のキーにマッピングされた値を取得しているかどうかを確認するために効率的です)

+0

ああ、提供NSDictionaryそのNSSetを考えると!ありがとうございました。 – ecarlin

関連する問題