【问题标题】:Objective-C Data Structure for Categorizing Items用于分类项目的 Objective-C 数据结构
【发布时间】:2016-06-12 23:54:38
【问题描述】:

我是 Objective-c 的新手,我正在寻找一个好的数据结构来允许对项目进行分类。假设我想对食物类型进行分类。类别是肉类、水果和蔬菜。当用户输入“苹果”时,我想知道苹果属于水果类别。此外,这些类别需要是可变的。因此,如果用户输入了未知的食物,那么他们可以将其分配给一个类别,并且该类别将被更新以记住这种新类型的食物。

我研究过使用NSMutableArray。我的想法是,我将为每种食物类别创建一个数组,数组的元素将是属于该类别的所有食物。然后我会搜索每个数组,直到找到匹配项。

类别不会太大(每个类别

有什么好的数据结构可以解决这个问题?

【问题讨论】:

    标签: objective-c data-structures


    【解决方案1】:

    Objective-C 提供了 3 种数据结构,可用于您的目的,NSArrayNSSetNSDictionary。这些也有可变的风格,NSSet 还提供了可以管理排序的NSOrderedSet 子类。

    您应该使用什么取决于您主要对数据执行哪种操作:

    • 如果您计划为每个元素分配多个类别,则可以为每个食物实例指定一个 NSMutableSet 成员。
    • 您可以拥有 NSMutableArrayNSMutableSet 实例,每个类别一个,并将食物添加到特定的 NSMutableSet
    • 您可以使用 NSMutableDictionary 将每种食物映射到其类别

    但这仍然取决于您是否需要在一个方向或另一个方向上快速查找。想想NSSetNSDictionary 提供快速查找(因此检查元素是否包含在NSSet 中或将值映射到NSDictionary 的特定键是有效的)

    【讨论】:

    • 啊,正是我想要的!谢谢。
    猜你喜欢
    • 2013-03-02
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多