我有一个数组,其中包含一些可能相同但有些不同的对象 如何分别拍摄每个相同的对象和不同的对象?
下面是数组
NSMutableArray *items = [[NSMutableArray alloc]
initWithArray:[NSArray arrayWithObjects:@"rat", @"rat", @"cat",@"Lion", @"cat", @"dog", @"dog", nil]];
我想要有四个包含这些项目的数组:
将物品拿出来的最佳方法是什么?相同的对象应放在同一个数组中。
答案 0 :(得分:6)
这是一般答案:
将数组放入NSCountedSet中 - 它将存储每个对象以及添加它的次数。
然后 - 对于此计数集中的每个对象,创建一个数组,该对象根据每个对象的计数重复。
它适用于您的情况,因为您使用的是静态字符串,如果它们是相同的字符串,它们将是相同的。如果您使用自定义对象,这将需要更多工作。
但我们要问的真正问题是为什么你需要创建这些重复的结构。如果我们能够知道你在做什么,我们可以为你提供更好的建议。例如,如果您只需要保持每种类型对象数量的运行计数,您可以直接使用NSCountedSet(它来自NSMutableSet,因此它已经是可变的)并且不需要创建数组。