我有个关于NSMutableDictionary的问题,
假设我有两组NSMutableDictionary:
NSMutableDictionary *oddNumber
NSMutableDictionary *randomNumber是否有检查randomNumber值的函数是oddNumber值的子集?
发布于 2016-03-18 08:36:39
你可以这样做,
NSMutableDictionary *oddNumber;
NSMutableDictionary *randomNumber;
// Create arrays
NSArray *arroddNumber = [oddNumber allValues];
NSArray *arrrandomNumber = [oddNumber allValues];
// Turn the arrays into sets and intersect the two sets
NSMutableSet *oddNumberSet = [NSMutableSet setWithArray:arroddNumber];
NSMutableSet *randomNumbersSet = [NSMutableSet setWithArray:arrrandomNumber];
[oddNumberSet intersectSet:randomNumbersSet];
// The Values present in both arrays
NSLog(@"Common Values : %@", oddNumberSet);发布于 2016-03-18 08:28:52
您可以使用values方法获取每个字典的值。这将返回一个数组。然后,您可以将这些数组转换为set,这些集合具有检查一个集合是否是另一个集合的子集的方法。
发布于 2016-03-18 08:43:42
看看你所拥有的价值。确保它们有一个isEqual:方法和一个散列方法,这样就可以将它们添加到一个集合中。使用第二个字典的所有值创建一个NSSet,然后遍历第一个字典并检查集合中的值。
注意,使用N个值创建一个集合需要O (N)时间,如果这些值有一个不错的散列函数,并且在一个集合中查找一个值是一个常数时间。
https://stackoverflow.com/questions/36079456
复制相似问题