ios - 当键是数字时,我应该在 objC 中为键值对使用什么数据结构?

标签 ios objective-c sorting nsdictionary

我有如下示例数据

1 -> Apple
2 -> Banana
3 -> Cherries
4 -> Guava
5 -> Apple
..........
..........

现在,我需要将其存储在 Objective-C 的数据结构中。如您所见,键是数字,值是 NSString 类型。通常会使用字典,但在这种情况下,我不能,因为 key 不是字符串。

我转而开始使用 NSMapTable。 NSMapTable 的唯一问题是,没有简单的方法来操作 [NSDictionary allKeys] 等东西。

我确实看到了一个名为 [Maptable keyEnumerator] 的东西,但是 keyEnumerator 看起来无法对其进行排序。所以我对在这种情况下使用什么是最好的数据结构没有想法。欢迎任何建议。

最佳答案

如果你使用 NSArray 那么你需要维护插入的顺序,使用索引作为键。

由于 NSMutableDictionary 仅设计用于处理对象,一个简单的方法是将整数或 float 包装在 NSNumber 对象中。

NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc] init];
[testDictionary setObject:@"Apple"
                   forKey:[NSNumber numberWithInt:1]];
NSLog(@"Test dictionary: %@", testDictionary);

关于ios - 当键是数字时,我应该在 objC 中为键值对使用什么数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43110364/

相关文章:

ios - Simperium共享公用数据集

ios - 适用于 iOS 投票应用的最佳 BaaS

objective-c - NSString stringWithFormat不必要的结果

objective-c - 为什么我的枚举不能用作方法参数?

javascript - 为什么对 javascript 字符串进行排序比对数字排序更快?

C++ 以不区分大小写的字母顺序打印 map

sorting - JavaFX 按日期对 TableView 列进行排序(dd/mm/yyyy 格式)

android - 检查现有社交媒体帐户的智能手机

ios - 使用 UIWebView 创建样式文本(在视网膜屏幕上模糊)

objective-c - 在当前时间创建 AVPlayer 的缩略图或图像