可可中的HashTables

Rya*_*chi 28 macos cocoa hashtable objective-c

散列表/包含HashMap是一个最(如果不是大部分存在的)有用的数据结构的.因此,在开始学习Cocoa编程时我研究的第一件事就是如何从哈希表中创建,填充和读取数据.

令我惊讶的是:我在Cocoa/Objective-C编程上阅读的所有文档似乎都没有解释这么多.作为一个使用"java.util"的Java开发人员,好像它是一个身体功能:我完全被这个困惑了.

所以,如果有人能够为我提供创建,填充和阅读哈希表内容的入门知识:我将非常感激.

Mar*_*don 58

NSDictionaryNSMutableDictionary

这是一个简单的例子:

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:anObj forKey:@"foo"];
[dictionary objectForKey:@"foo"];
[dictionary removeObjectForKey:@"foo"];
[dictionary release];
Run Code Online (Sandbox Code Playgroud)

  • 请注意,以真正面向对象的方式,Cocoa类以"他们做什么"而不是"如何实现"命名,因为HashTable,HashMap和朋友都使用Java,C#等等. (5认同)
  • C#也称它为字典! (2认同)
  • @Chris Hanson - 在Java中,这通常将实现(例如`Thread`)与接口(例如`Runnable`)区分开来.我发现这个约定促进了对接口的编程.它可能是也可能不是"真正的面向对象的时尚",但被广泛认为是一个好主意. (2认同)

小智 12

您可以尝试使用NSHashTable!


Bar*_*ark 8

如果您正在使用Leopard(以及Cocoa的新垃圾收集),您还需要查看NSMapTable.


Chr*_*son 7

除了NSDictionary之外,还可以在需要没有订单且没有重复项的集合时查看NSSet.