0

我在一次采访中被问到我会用什么结构来存储 100 个名字:一个NSDictionaryNSArray以及为什么。

最好的答案是什么?

他说他想弄清楚一个名字是否存在。

4

3 回答 3

3

这是一个开放式问题,面试官可能对你的思考过程和你提出的问题更感兴趣。如果您只需要枚举对象,IMO 的简短答案是 NSArray。NSDictionary 如果您需要通过键查找对象。而 NSSet 当你只需要检查成员身份时。当然,这一切都取决于物品的数量以及它们的使用方式。有 100 个项目,可能是 6 个,另一个是 1/2 打。更多的是代码的可读性和可理解性问题。

阅读这篇古老但并不过时的文章,以很好地了解每个集合的性能注意事项。http://www.cocoawithlove.com/2008/08/nsarray-or-nsset-nsdictionary-or.html

于 2013-06-27T03:03:17.427 回答
2

我认为这对两者有一些很好的解释,尽管它更关注性能方面https://stackoverflow.com/a/10545362/1415348

它实际上最终变得更加开放,这取决于您可能想要对数据做什么。

现在它已经编辑了更多关于他们想要如何使用它的信息,我同意 Hot Licks,NSSet 将是最好的。它有方法 containsObject 来确定集合中的存在。NSSet 类参考

于 2013-06-27T02:44:27.880 回答
2

最好的答案是提出更多问题以澄清要求。什么样的名字?什么语言和地区?它们将如何使用?它们会改变还是静止?是否存在存储或性能问题?等等。

目标很可能是找出你对设计的看法。即使他们没有回答进一步的问题,他们也可能期望至少为使用各种数据结构提供一些推理,您可以在其中说明如何使用它们以及为什么它们有意义。

我严重怀疑他们期望一个字的回应

于 2013-06-27T03:22:02.403 回答